You must not have Ubuntu and Mac. There were a time where games are multi-platform as they are written upon OpenGL. Microsoft throw a whole lot of resources in DirectX to compete with it. DirectX7,8,9,9a,9b and 9c. DirectX 9.0c has won the war as CAP bits are impossible to manage by programmers. DirectX10 kills all of the CAP bits (and then create new ones) in the name of management, but in practice they want to take control on what can be done. Nvidia never liked Directx 10 due to its lack of support on GPGPU, but are forced to comply. ATI didn't have this problem and created 4xxx series based upon Dx10 specification. That is why Nvidia kept TWIMTBP while AMD ditched GITG. The result? You knew.
TWIMTBP obviously made games better, and not surprisingly, more so with Nvidia gear than others. Sea of QQs left and right, sabotage, bribe, you name it. However, what about the part that probably won't be there and also worked on ATI cards? To some, there ain't any. In Batman:AA, MSAA won't be there for sure it it isn't because of TWIMTBP. Yes, it is only in the GOTY version for AMD user, but if Nvidia never put it there the first place, then it wouldn't be there. Why was it so difficult? Well, it is all because of the limitation of Dx9. See how the pieces falls together?
Really? Haven't you see the amount of complains about how GPUs are undersaturated in skyrim and how CPU speed is the domainate factors on performance yet it is hardly under load? Someone posted a challenge in the skyrim forum to others asking nothing more than a screenshot with FPS indicator at a specific spot. The problem is even 2600k overclocked to over 4Ghz still can't max out the graphics along with good FPS. Picky you may say I am, but under 40FPS while looking at the town of skyrim top down with a overclocked 2600k, SSD, 3x580SLI isn't what I will call good performance, specially when neither CPU or GPUs is under heavy load.
As to its physics, it isn't bad, but it is surely buggy. I killed myself by simply working into a pot a few times. Weird bounding sound from objects which are suppose to be stationary. CPU physics isn't perfect, just like GPU physics. The fact is, physics are getting better and better, with both CPU and GPU.
Where do you think MS makes money from? Trees?
http://www.microsoft.com/about/legal/en/us/IntellectualProperty/IPLicensing/Policy.aspx
Rome wasn't built in a day. PhysX has a long history. Ageia acquired and modified NovodeX, which by itself is a working physics engine to begin with. The modification is so that it utilize a PPU when it is present. Without PPU, NovodeX is just another physics engine that runs on CPU. It was renamed to PhysX and where later acquired by Nvidia. In another words, PhysX is nothing more than a physics engine that runs on CPU by default if Nvidia video card is not present. Havok had the potental of allowing GPU acceleration too, but MS are not going to waste resources on that as they do not benefit from it.
The only reason why PhysX is good as because Nvidia controls both the API and how these APIs are implemented. Havok FX can't do that as it must rely on GPU vendors. MS can dictate the API, but that is if they have a clue first. Only Nvidia has the clue as they have PhysX, an existing engine that offloads things to GPU. AMD is trying to catch up by hiring the person who built physx, Manju Hegde. As to MS? They must learn to build video cards first. Again, physics engine can be build on top of DirectCompute, but like any new things, there will be lots of bugs and compatability issues. Compare it with something that is working for 8 years, it really isn't easy.
The performance hit you talk about doesn't come out of no where. If you think CPU can handle it, then there are no problems having CPU handle all affects from PhysX without a nvidia video card. You believed that PhysX is a tool used by Nvidia to deliberately hammer those that are not their customers. Don't worry, you are not the first and won't be the last. There were a claim stating that PhysX cripple CPU performance by using old instruction set (FP87) where it should use SSE. Guess what? PhysX 3.x SDK enables SSE, but CPU performace is still inferior. CPU Multi-thread support? Yes, but still inferior.
http://www.geeks3d.com/20100711/cpu-physx-x87-sse-and-physx-sdk-3-0/
Many believed that it is console gaming that is holding pc gaming back, but it isn't. The true problem is the diversity of hardware combinations, and you actually showed the reason as a user. You don't want performance hit, and you are not the only one who doesn't want performance it. However, there are people like me who wants to see our system work, justifing its cost. How will you balance this?
As to B:AC, there is a Dx11 performance problem, but no one is saying that this is a PhysX performance problem, so what exactly is your problem? This is not personal, as a sea of users are complaining about Dx11 while seeing no difference playing it in Dx9 except that the performance issues are gone. Guess what, you can turn the level of eye candy up or down depanding on your setup. I don't know what you want, but if you don't want headache that you should side with console gaming so everyone play at the same level. I love new technologies. I want to see games that will drive my computer to its knees so I have reasons to upgrade. PhysX is good as it is really an add on to the game.
I too want to see games make in 64bit, require 16Gb RAM, max out 8 core CPUs and only runs in Dx11. Unfortunately, there are none. There are none because such product has avery narrow market. Dynamic tessellation is only good by its name as you really can't scale things up and down. The MS way of solving this problem is with dynamic tessellation. Playing Dx11 with Dx10 hardware will make everything look like deflated balloons, so devs basically make the game without the need of Dx11 tessellation, and retrofit it back as overinflated balloons. You may think this is good, but not me.
Were you asking why I said it will run worst if it doesn't crash? Look that the current Dx11 implementation. Crysis2, DA2, Dirt3, and Batman:AC. You need to try really hard to say that there are no problems with directx.