Investing engineers' time into evaluating the exact transactional integrity requirements of every view may be appropriate in some contexts. Getting a blanket safeguard from ATOMIC_REQUESTS can be a fair tradeoff in other contexts.
Engineer time is expensive. PostgreSQL horsepower can be pretty cheap on low or even medium traffic websites, which are a substantial part of Django's target audience.
On these websites, it can be entirely reasonable to pay a limited cost for ATOMIC_REQUESTS and to get the benefit that every view succeeds completely or fails completely.
Also you don't depend on engineers getting the analysis right every time, including when they make a change — the situation that triggered this discussion in the first place.