It might be useful to lock down some classes that aren't intended to be inherited from (e.g. ResourceScope, AutoCloseScope) with SubclassOptIn, so that we communicate clearly that inheriting from them is inadvisable and maybe might break across releases.
This approach is taken by kotlinx-coroutines, for one.