1) My problem is once I make a field mandatory, it's globaly mandatory. I may have new subs coming on who complete their address but previous subs didn't have to.
Right, but you can hide that field by say Plan A so only users not subscribed to Plan A would be required to complete that field. To hide fields in profile edit you'll need to use CBSubs Fields Tabs Protection integration.
When I need to edit any info (in the backend) of the user, the newly required fields keep me from saving any changes. I don't have the info so can't make any changes! It would be nice if the backend didn't have the same check for all required fields when saving.
Please see CB configuration as it's possible to disable fields validation in backend.
2) I would think repurposing the "Invoice Address" plug would be a good place to start for the redirect and complete project you mentioned. While we're talking about invoice fields...
Invoice Address is managed directly within the purchase, it is not used outside of this and can change on a purchase by purchase basis.
I've no plans in CB Progress to integrate into CBSubs in anyway, as explained in my previous post it will force users to profile edit if they have empty fields that are configured as Required.