You are responsible for removing any Runtime listeners yourself. Touch and Tap listeners are attached to objects and when Composer hides a scene (or removes it) those touch handlers can’t be interacted with (or will be removed for you), but anything on the Runtime isn’t managed by Composer.
As for the second issues, that’s a very odd message. It would be very helpful if you could copy and paste the exact text from the console log.
composer.loadScene() is used to pre-load a scene. Basically, it creates the scene object and calls scene:create() and nothing more. Then later you can call composer.gotoScene() and you won’t have to do all the work that scene:create() does which can improve performance for scenes that take a lot to construct. In most cases you don’t need to do this as scene creation is pretty quick.
You can have a scene remove itself if you want, but you can only do it in scene:hide()'s “did” phase. Unless you need to free up memory, immediately, you don’t need to remove a scene right away. Composer is designed to cache scenes so you can avoid re-creating them later. Most people choose to remove scenes because it’s the lazy way to reset a scene. I’m even guilty of taking this shortcut.
In my case, since I’m not stressing memory with my game scene, I won’t remove it right away. Instead, I will do:
composer.removeScene("game") composer.gotoScene("game")
so that it resets right before I want to go to it.
Rob