It’s not just that they have never posted. How often do you check out a post on Twitter? By default, the clean-up period in Discourse is 730 days. So if the account isn’t that old, it isn’t deleted, but it also isn’t deleted as long as you logged in within this timeframe. So as long as “rarely” is less than 730 days, the account won’t get deleted. Also, accounts that reached trust level 1 aren’t deleted, and even if you visit a place rarely, you spend some time reading posts. By default, after reading 30 posts, opening 5 topics, and a total of 10 minutes of reading time, you are at trust level 1.
In general, I think the Discourse defaults are chosen in a way that they fit most communities’ needs. But of course, there are cases where, for example, disabling user deletion is necessary. For example, if you use Discourse as an identity provider, so the users do not visit your forum but still need the account.