Yes, the login and registration sadly has to be handled separately. The good news is that since GF allows HTML and shortcodes in the text area to show when the user is not logged in, you can pretty much code the solution right there.
How I dealt with it:
1)Install Easy Modal Plugin
2)Create 3 modals (Login, Password Recovery and Registration)
3)Form Settings>Require Login Message: you can use something like:
<h1>Registration Required</h1>
<p>You must first register in order to fill the form. If you already registered and want to start a new application and/or continue an old one, please enter your login information and click the login button.</p>
<p>Otherwise enter a username an your email address to receive your new account password</p>
[button id="" class="eModal eModal-9" align="" link="" linkTarget="_self" bgColor="accent2" font="24" icon="" icon_placement="left" icon_color=""]Login[/button]
[button id="" class="eModal eModal-11" align="" link="" linkTarget="_self" bgColor="accent2" font="24" icon="" icon_placement="left" icon_color=""]Recover Password[/button]
[button id="" class="eModal eModal-10" align="" link="" linkTarget="_self" bgColor="accent2" font="24" icon="" icon_placement="left" icon_color=""]Register[/button]
You can see this solution over here: https://retail.americanlendinginc.com/loan-application/
This is just one way, another pretty creative way is to install Short Code Exec PHP. Create a nice PHP code on it and then just use the shortcode.