If this 500K routes are from the peer, you switch (in reality) 10 - 20%, so
it is simpler anyway.
Even if it is multihome customer, there is not any need in _fast_
installation for these 500K routes. You just switch from one
provider to another _some_ of the routes - if it takes 1 minute, nothing
wrong happen.
this is the whole "populate the forwarding table on demand" approach
(a.k.a. "route cache") versus "prepopulate the forwarding table" (a.k.a.
CEF).