The difference is that $currentUser represents a user object whereas [%CurrentUser%] is just an id of the actual object. So if you would ever need the name attribute of the current user in a retrieve then you can only use the $currentUser. However in practise you almost always use an association to retrieve entities and thus makes the id pointer as good as a choice.