The technical restriction is that you need to have google apps installed and have a valid app certificate to use FCM (the current name of Google's push notifications).
As for alternatives. FCM (or, for that matter, Apple's APNS) requires a persistent connection between a device and push servers to work. Curiously, both Google and Apple seem to be doing this via maintaining a modified XMPP protocol. And this just can't be replicated by any other party: to maintain a persistent connection an app must work all the time and be active in the background, and both Google and Apple heavily suppress background app activity (google has some workarounds, but they become more and more restricted with each OS update).
All in all, I believe that this policy is begging for some antitrust action, so device owners could legally subscribe to alternative app stores and push notification providers. From what I know about XMPP, replicating a server part of a push service should not be insanely hard to do.
It also omes down to power consumption and special mobile protocols.
Keeping a TCP connection open on a mobile link requires occasional keepalive package exchange. That wakes up the mobile radio, which is quite power hungry if the device isn't doing anything else.
That radio wakeup is needed for each independent TCP connection's keepalives, so to minimise the power consumption of multiple idle app/notifier connections, you want them multiplexed over a single TCP connection.
Another factor is the ability to send the underlying event over a lower-level mobile protocol. The mobile base station is regularly exchanging with the handset anyway, to maintain a link which can carry station-to-handset events already and to monitor the link. The whole thing is very well optimised for the radio. So an occasional application event can be sent over that link as well without needing any extra keepalives or radio wakeups. That's the most power efficient thing to do in principle, assuming application events aren't happening often.
Unfortunately, having lots of independent push notification providers being used by different apps at the same time would be quite power hungry.
I think it would be great if a user could direct all the subscriptions through one or two services of their choice though, including an option to provide their own service URL that they run themselves.
As for alternatives. FCM (or, for that matter, Apple's APNS) requires a persistent connection between a device and push servers to work. Curiously, both Google and Apple seem to be doing this via maintaining a modified XMPP protocol. And this just can't be replicated by any other party: to maintain a persistent connection an app must work all the time and be active in the background, and both Google and Apple heavily suppress background app activity (google has some workarounds, but they become more and more restricted with each OS update).
All in all, I believe that this policy is begging for some antitrust action, so device owners could legally subscribe to alternative app stores and push notification providers. From what I know about XMPP, replicating a server part of a push service should not be insanely hard to do.