The problem is that exception safe programming is really-really hard when object state is involved as the exception path should normally maintain the invariants (to be exception safe) which may even involve undoing some things in case of exceptions.
Of course your point is correct, exceptions mean that code that doesn’t handle non-local returns is also not exception safe. There is however something to be said about making crossinline the default instead of the current default. The problem is that this boat has sailed long ago and changing this default now is a breaking change that is very unlikely to happen (it would need to go through a no-default-at-all phase were an explicit choice is required).