I've been testing using a page request of /register/user-join-custom.
In going through Lars' request above, it appears that his initial changes to pass the return_url through the register links *has* fixed the problem in cases where the page requested is not under /register. This is odd.
It's no wonder that you aren't able to reproduce the problem at this time. We are looking in different places, and the results are not consistent across all requests.
So, using /register/user-join-custom, the answers to your questions above are:
b1) return_url is NOT present in the URL of the initially displayed login page (it WAS contained in the URL when a non-"/register/..." page was requested)
b2) return_url is present in the register link on the initially displayed login page, but it is WRONG. Instead of containing /register/user-join-custom, it contains /pvt/home. The correct value was contained in this link when a non-"/register/..." page was requested.
See? I'm really not crazy...
Thank you, Lars for being the one to step back to look at the 30,000 foot view and re-evaluate and re-establish conditions.