Hibernate puts all entities into the first level cache which is bound to the session. Session.clear() makes sense if you are doing batch processing (see chapter 13 in reference documentation) or if you are using as session for a long time without ever closing it. The latter is not recommended. Normally the session should be bound to the transaction and be closed on commit(). But there could be other scenarios where you want a session to be active for a longer time.
Normally you dont have to clear() the session. The session will automatically be cleared on close.