For your points 2 and 3 specifically: if you go the Icecast route (AzuraCast also uses Icecast under the hood), Icecast can require a username and password per mount point, so the stream URL alone is useless to anyone who stumbles on it, and you can give the mount a bland name. Put it behind HTTPS on your reverse proxy so the password isn’t sent in clear text.
For point 4 (genres at certain times), AzuraCast’s playlist scheduling handles that from the web UI. If you build it yourself instead, Liquidsoap can switch playlists by time of day, but it’s a scripting language with a learning curve.
If what you really want is your own library rather than one stream everyone hears at the same time, the Navidrome suggestion is simpler: separate logins and plenty of Subsonic apps on Android.





The comparison table is the useful part, because “optional and replaceable” is something you can actually check. Remote access works without the subscription through your own reverse proxy, a VPN like WireGuard/Tailscale, or a tunnel, and the Alexa/Google voice integrations can be set up manually, just with more steps. So the no-lock-in claim holds for the service itself.
The rename seems mostly aimed at the confusion they mention, where new users thought “Home Assistant Cloud” meant running Home Assistant in the cloud. Fair enough given how many people ask exactly that.