As long as you have an anonymous role set up in the application and it has access to any pages, microflows, nanoflows, or workflows that are used in your pages it should work fine. [%CurrentUser%] and $CurrentUser are System.User entities non Administration.Account entities, and they should be created automatically when they access the application.
In this case it's best to collect all the required registration data outside of the workflow and then initiate the workflow as anonymous user. Tasks can only be assigned to named users. Anonymous user objects are deleted after the session expires. In this case, after the anonymous user has completed the registration form and initiated the workflow, the new named user object should be created (after approval, sending the user an welcome email with password, etc) and then a task can be assigned to this newly created named user. When the new user logs in (as a named user) (s)he can see an assigned task.