When you download "DirectX 9.0c Runtime Enviroment" you are simply downloading the d3dx9 dll files (which are d3d 9 extensions). This is why Vista/7 have DirectX9.0Ex, Direct3D 9 calls are only used when Direct3D 11 (or 10 if Vista isn't patch) aren't available. For example if a DirectX 9.0c era game wants a Direct3D 9 driver then DirectX11 uses DirectX9.0Ex to virtualize the driver using Direct3D 9 files loaded. DirectX 11 is still controlling everything.
Vista and Windows 7 already include components of DirectX 9.0 before you download the Runtime enviroment. The only thing downloading the DirectX9.0c RE does is verify that you have all of the legacy components.
No, the D3D9Ex interface is the extended interface, the D3DX9 files are a set of advanced (but not extended) interfaces. They support the complex features of the system, Effects and such, but are completely separate from the Ex interface (the D3DX functions do not form an additional interface, they add additional objects and methods to the existing library, where as Ex defines a extended and not as compatible interface above the existing one). The D3DX libraries are available on XP and earlier, the Ex interface is generally not. When a game using DX 9 (Morrowind for example) calls a D3DX function, it's not calling a magical D3DXEx9/11 function as you say, it's calling the D3DX function in the 9.0c library.
You are correct that there are some components of DX 9 included with 10/11, in a way: the basics required to run some programs are there, but the D3DX libraries are not included with either 9, 10, or 11 in the default or minimal installs on any supported operating system. The DirectX 9.0c runtime installer does verify you have all the components of 9.0c (which can't be properly be considered legacy, since the last update was relatively recent). Thus, you must
install the full set of runtime libraries for it to function. Installing in this case involves copying them to the appropriate folder and registering them as COM objects with the system, which was my whole point. You
are installing them, there's no two ways about that.
In any case, I'm done debating this. If you're interested in what actually happens, I recommend you check the MSDN and other documents on DirectX, and possibly look at the installer, installer documentation and binaries themselves. Perhaps attach a debugger and see which libraries are used and how by your programs. It's quite fascinating.