I would not say the diagram is representative of what layered architectures look like. The diagram doesn't show the dependencies within a layer. Also, OAuthController skips a layer, so that means that you have some domain login in the controller (I think that is called loosely layered or something along those lines).
The point of hexagonal architecture is that when using it, you operate in your own language of the domain. As you know you have ports and adapters. The primary ports are entry points into your application, the secondary ports are the access points for your application to the outside world. The business logic - the rules of the business - do not depend on the outside world.
You might say that they depend on the ports, but ports are under your control. You write tests for the ports and adapters have to conform to the port behavior instead of your business logic having to adapt to the IO layer. You also don't do ports for the "data layer", but any kind of outside dependency - library, messaging, etc.
This allows you to easily change the adapters and swap persistence layer for example. You might be using Hibernate and Postgres and you decide that Hibernate makes your life hard and change it to JDBI. Then you might say that SQL database does not suit you and you would rather use MongoDB. It even allows you to decide what database to use later in development. You can start just with in memory database for the development purposes and add database later if needed, which speeds up your development as you don't need to deal with the database.
You can also do benchmarks way easier if you need, because you can have multiple adapters implementing one port and then it is just the matter of the configuration.
You can do all this without touching the domain logic - all the business rules stay the same. Hexagonal architecture basically allows you to program at a higher level while you are working on business rules, hiding the implementation details away.
You don't have stuff like EntityManager, UserEntity (the @Entity class) or ObjectMapper in your domain. You simply have eg. UserRepository, User (domain object) and UserMapper, which you define. You then implement them with PostgresUserRepository and JacksonUserMapper. The domain is detached from the implementation this way, which prevents a mess.
As you said, the business logic still has the same dependencies, but at least you are not dragging in the dependencies that have nothing to do with the business.
That being said, this style makes sense when you develop something that will have a long life. I do not see the benefit of this style for a hello world application, that will be thrown away, unless you want to practice this style of thinking.
Here is a good talk regarding this: https://www.youtube.com/watch?v=SxJPQ5qXisw