Peter, yes, it gets resolved correctly. Your solution would only take the first saved address, but wouldn't use the selected billing address from the shopping cart.
I found another solution, which requires more code. I've now written a custom ITaxCalculationService
, in which the billing address is available by default.