This is normal. If you don't define any pages yourself (this is sometimes called a "single-page app" even though I think literally defining a single page yourself doesn't do this), the UI automatically provides mode selectors for you and makes them work (just doesn't wake your app when things happen if the mode isn't right).
The way around it is to do exactly what you figured out. The idea, presumably, is that more complicated apps with multiple pages might have fancier things they want to do with modes (and in that case the onus is also on you to actually make the selector, should you offer one somehow, work). Most apps do offer something since modes are a common way to "restrict" apps, and this just makes it easy for single-page apps.
Haha, yeah. This is a carry-over from SmartThings. When we first started out, we tried to make things compatible with the way SmartThings was in 2016-17. At that time we didn't have any documentation to speak of, and most of our users came from SmartThings. They quickly figured out they could just refer to the ST documentation for apps.
The mode selector was basically a simple default restriction.
If you look in our public repo at the example apps, you'll discover that every one of them uses a page definition, so that what you get in the UI is exactly what you put there.