What is the expected behavior when these throw IllegalStateException?  In particular, what is the advantage of doing so instead of just  something like `assume(!destroyed,"Map state is invalid from destructive sorting!")`?