I tackled something similar by creating a custom override that restricts customers from adding extra billing addresses after account creation. For more control, I used geo-fencing to limit address registration to specific regions only, which helped avoid mismatches between shipping and billing data. If you’re comfortable adjusting core logic, it’s pretty doable without extra modules.
Edit History
I just added a condition in the address form controller to prevent adding new billing addresses if one already exists, and it worked fine without breaking anything else.
.png.022b5452a8f28f552bc9430097a16da2.png)