There's no simple answer to all those questions
, but I'll give it a shot:
You will benefit from DirectX improvements ONLY if these improvements are made on the interfaces you are using. As you've probably noticed, MS frequently adds new interfaces with names like xxxSurface2, xxxSurface3 etc. - Obviously, if all the improvements from one version of DX to the next is in new intefaces, your old code won't benefit from it.
DirectX as such is not tied directly to the hardware - it use a HW specific driver. I.e. a bug such as the one mentioned in flip() can be fixed with a new driver (regardless of the version of DX). IF, one is available, that is.
/Niels
(BTW. Interresting about the slow flip() when out of VMem - I figured it might work like that, but I've never seen it happen, or read about it for that matter. (Yep, I got a TNT2 so it's unlikely to happen in the 640x480 16-bit color mode I'm using )