You are behind a firewall designed to cut out bots, and now need to bypass or handle anti-bot CAPTCHA. Again, bad.
You want to provide push notifications, but that requires background polling on a server. Yep, that's pretty bad, since it multiplies the effort AND erases the "basically just a browser" part in one swoop. Now you need to probably pass user credentials to your backend (bad) and scrape on the server, bypassing Cloudflare/etc in a headless manner (bad.)
Reddit shuts down old.reddit.com and cuts off access to NSFW and "edgy" or perhaps just small subreddits except when logged in on official apps. Now you need to scrape from either official iOS/Android APIs where the keys could go invalid at any time, or the JS desktop site which is all JS and XHRs everywhere. The only way to make your app truly behave like the real thing is to carefully set up an actual browser engine and hide evidence that you're using automation, which is a lot harder than you might imagine. Yep, you guessed it. Very, very bad.
For that last thing, Twitch's "integrity check" mechanism is a great illustration of just how user hostile things will quickly become. Twitch integrity check won't even pass for real browsers half the time. It hates Linux users. This is the future you get.
No, it's per app.
Nope, not even close.
Those apps are basically browsers. Applications to browse Reddit, right?
Why not use the "html over http" API which every other browser also uses?
Yes, you would have to harden the code a bit so it gracefully deals with the structure of the html changing sometimes. And you would have to update the parser from time to time. But is that such a big problem?
Also: When using the API, how is the free API limit not enough? In TFA it says "100 queries per minute per OAuth client id". That is per user, right? Why does it take more than 100 API requests per minute to use reddit?