There are perfectly legitimate reasons to not have a backend. In fact, if something can be accomplished without user sending his data to some remote server (as opposed to just fetching data from the server), I believe it should be done this way.
In some ways it's limiting, but overall it's a good thing. Less complexity, less network transfer, works offline, etc. It's just more challenging to do in JS/HTML than in your choice of traditional desktop app dev tools.
GMail and Google Docs work offline too. Surely with things like Firebase it's less complex than inter-tab communication?
Oh, you’re volunteering to pay for it? How nice of you!
</sarcasm>
Cost is a real concern for these things. The tradeoff is running things on client or expensive backend or spending ages building a custom, efficient backend.