Entity maps should be as flat as possible (but no flatter). I’d go with the first option as a default and just destructure the keys you need in the functions you use the entity in. Or you can use select-keys if you need just a “profile” subset. A reason to nest is if you have a one to many relationship, like your addresses example earlier, but otherwise I’d keep things flat.
In the latter two examples you’re really building a view on your data into the data scructure itself, so that you could do something like (::account/profile user). But I think it’s better to do something like the following if you want a view on your data:
(def user
{::account/id 1
::account/name "Me"
::account/email "abc@abc.com"
::profile/image "me.jpg"
::profile/nickname "meeee"})
(def profile-keys [::profile/image ::profile/nickname])
(defn profile [user] (select-keys user profile-keys))
A flat map is inherently less complex than a nested one. A user entity with any number of attributes from wherever is still one concept. A user that “has a profile” is two concepts. Sometimes you need that but often, like in your example, you don’t.
You will need to have aggregate values in your user entity like addresses, but IMO you shouldn’t just nest for organizational purposes. The user is an entity and the user map should be all of the user’s attributes.