Note that there already is "display_in_launcher" manifest feature, but it's restricted to component apps and few whitelisted apps. Technically, I guess these restrictions could be loosen up for this for certain types of apps (e.g. if an app has printerProvider permission), but I agree that the main issue here is in which UI to surface these apps (and whether it would be OK to show them only in chrome://extensions, which would probably blur the distinction between apps and extensions even more).
(though, for printer provider apps, the actual issue is that chrome.usb and chrome.mdns APIs are apps-only)