I think it's getting there, it's incredible that there are so many possibilities.
After I changed the setting, allow free registered users to yes and create subscriptions also for free lifetime plans to no, I deleted all my test users (I think this is very important because if you leave them even though you create new subscriptions they are looking at the old subscription plans) Then I created 4 plans:
Plan 1 Free lifetime exclusive default public upgrade no
Child Plan 2 Paid exclusive default registered upgrade yes
Plan 3 Free lifetime exclusive default public upgrade no
Child Plan 4 Paid exclusive default registered upgrade yes
with this combination Plan 1 and 3 can see all tabs with limitations. Plan 2 and 4 can see what they are supposed to see and when paid membership expires they go back to Plan 1 and Plan 3 respectively.
There is one issue I noticed though, when I tried to control access to url under integration > extensions > by URL parts, it protects the page but it doesn's suggest which plan to select or upgrade, in order to see that page. The page has heading subscription options and the rest is blank. But if I was to use protect by module or by component it displays the available membership options.
Is it a known bug or is there a setting I have missed?
Thanks