In sessions vs. JWT revocation lists, there is an argument in favor of JWT revocation lists. JWTs have a limited expiry timestamp, so you only ever need to maintain a revocation list for tokens not expired yet. Given that you probably only have a fraction of JWTs revoked compare to valid JWTs in circulation, you only need to query a very small dataset for each request. When using sessions, your list of valid sessions…
The moment you have to look up the user object, you've lost the primary advantage of JWT, and might as well ditch it.
There are systems where the authorization is done in the JWT too (i.e. scopes/permissions in the token) - in that case you are right.