Hi,
Under the current concurrency rules, a non-Sendable globally-isolated closure is not really useful, as you can only use it if the current context is already isolated to the global actor (naturally, this won't require sendablity across isolation domains). Since the context is already isolated to the main actor, and the closure is non-Sendable, you don't even need to mark the closure main-actor isolated because it will be called from it anyway.
However, until SE-0434 lands, I think that from the usability perspective, you should mark globally-isolated closures as Sendable because then you'll be able to use them in, for example, a Task{}
closure.
Your intuition is mostly correct, if the closure is isolated to the main actor, this means that it will never be called concurrently since all calls to it will be queued on the main actor (this is a very very abstract high-level intuition). So therefore, it is safe to infer @Sendable
for usability of such a closure.
I hope this helps!
-- Sima