We have the same issue and filed a feature request for this. Currently we have a scheduled event that cleans up the data for some entities and we make sure that the empty records do not show up in the overview and select forms. This isn't a real solution, but in lack of anything better.... If you have another solution, please let me know.
Good to know it's an known issue. Exactly what you say, it is not a real solution having events cleaning up the place. I just experimented with a validation rule and a before commit event. My theory was: Check on before commit that a required attribute is empty and then do a rollback in the microflow. Because the object is committed and the required attribute stays empty. However, the event never fires!
I'm so currious on how this object can exist in the database, when it seems never get committed in the first place.
It looks to me that the real issue is that selecting a new menu entry is NOT triggering the default Close action of the currently displayed form, which it should do in my opinion.