I can't quite answer your first question about the REST API, but I can comment on your second question about using a service account from the client. To be completely honest, it just has not been a high priority for us and it is hard to avoid people mis-using it. It is a fairly niche use case and there are very rare cases where you ever want to actually send a service account to your browser. Obviously, there are some, and I'm not saying yours is not one of them, but we have to think about the collective sum of our users and their use cases. Many, many more people which will abuse a feature like this than will use it properly. I can't tell you the number of times I've been helping a developer debug an issue only to discover they included a secret or service account private key on their public website.
You do have some strong workarounds for this problem though. You can build an Electron app (as you mentioned), which is not restricted by this. Or you can proxy requests through a custom server running the Admin Node.js SDK. Lastly, you can just set up your security rules to allow expanded access to your Database or Storage data for administrators (which you can track, for example, in a /admins/$uid node or via an admin claim in a custom token).
Your request for a client-side version that allows service accounts is heard loud and clear, but I wouldn't expect to see it in the near future. I am definitely internalizing your feedback though, so thanks for your comments about it.
Cheers,
Jacob