@LMG Agreed. That is what I have done in the past to mitigate with shipping address issue:
1. add a custom field to the address as "Actual Default Shipping" (checkbox)
2. create a UE script when the customer record changes, iterate address lines, and always check the Default Shipping (native) box back to true when its line value for "Actual Default Shipping" == true
I believe there is an existing enhancement request about the shipping address thing. I don't know if we can add custom fields to a Credit Card sublist (maybe due to PCI compliance or other restrictions), so you might need to store that at customer record level as a custentity field. And then log an enhancement request to add fields (of limited type like checkbox only, so it's still natively PCI compliant) to the credit card sublist.
Let me know what you come up with.