in fact the launcher only displays apps to users in roles that have read access to the particular app.
if a tab references directly to a view, it will only display if the user has read access to the view, but if it's a collection, it will display regardless (I believe, even if the collection is empty).
Everything you say here is true, except for the app called launcher. Launcher uses two html files with hard coded links to data inputs, getting started and the manager modules. It seems impossible to modify launcher in the same way as every other app - by editing the XML in nav, because there is no default.xml to modify. The only way I've been able to customize the launcher app navigation controls is by modifying the links in sb.html and launcher.html. If someone has found a better way, please let me know.