While this one isn't me, I used GAF to have this done and wasn't happy with the results. While the person did make it work, he used attributes to handle multiple addresses and, in general, the code wasn't that clean.

I decided to take this approach also in lieu of rewriting the shipping/order module(s).

I also added the ability to save addresses added this way and recall them on the address page.

W