definitely it's a client thing, and there is a particular culture among the client devs that is sticky and in some ways stupid.
i don't think there is anything wrong with notification alerts but practically everything on the internet these days those things hardly work anywhere anyway, so it's not even that abnormal actually, that the clients aren't writing this into their apps.
the other thing is that the client devs are terrible at actually programming properly threaded everything, most of them couldn't even handle that background worker stuff to actually implement it.
even among relay devs there is a pretty cruddy understanding of how to do multithreaded stuff, it's either over the top ridiculous or nonexistent. in my work i plot a middle course where i avoid threading unless the task calls for it. queries, for example, should not be threaded because they are supposed to be sorted before delivering, but fiatjaf and his forkers all use event queries that randomly spew events back in whatever order the database returns them. this is an example of where they are putting threads where they don't belong. and in part the reason for it is their database query engineering skills are also underdeveloped, so very often the queries don't run properly reverse chronological order because out-of-order storing of events that happen to match a query that is made later come out in the same order they went in, not in the sort order the spec says they should.
so there's a LOT of problems behind what you see on the surface, and a lot of cope, justifying their incompetence with shitly implemented clients and relays, by some aspirational contrarian take. the reality is they are amateurs and have barely a CS degree (even at today's lax standards) between them.