I may not have been clear there. I'm not saying the author's list is wrong, I'm saying its incomplete.
For starters, the blog post leads with the premise that the answer is always "No". Even ignoring that as playful banter, the checklist is way to broad to be universally true.
> You wanted to implement log-out, so now you’re keeping an allowlist of valid JWTs, or a denylist of revoked JWTs. To check this you hit the database on each request.
> You need to be able to block users entirely, so you check a “user active” flag in the database. You hit the database on each request.
> You need additional relationships between the user object and other objects in the database. You hit the database on each request.
> Your service does anything at all with data in the database. You hit the database on each request.
These all assume that I authorization data and that the user data lives in the same database. I may store my own user object with a unique ID that references an authenticated user, while the author flow is actually managed by an entirely different service (whether first party or third party). I also may have my user data stored in a separate database, say for legacy reasons or data security/integrity requirements. Not every database is crested equal, its totally possible that one database is a better fit for user data while a totally different database is needed for application data.
Coming up with a list of broad scenarios and claiming that if you check any one there is never a reason to pick JWTs over sessions is misguided and overly simplistic. Context always matters.
edit: formatting