Form no longer entering into CiviMember for free memberships
I think the problem in your demo example is that you did it as a Test, which therefore doesn't show. If you go to Find Members, and set 'is test' to YES I then see the membership for a-test f-test if that is your example

also i did it for user = demo and did a 'pay later' option and that fired through fine.

so this may not be an answer to your original question but does answer your 'this is wrong on demo too' i believe.