Yes, the CPU is quite powerful, but M21man is talking about _scripting_. The CPU can track millions of bullets, using compiled C++ code (or whatever it is they're using). We'd have to track millions of bullets using runtime parsed OFP scripting code which does not have direct access to the physics engine. In other words, we can't have the bullet's trajectory dumped to our scripts, we have to calculate it from polled spots along the way. Very quickly the load becomes rather burdensome. The moral of the story? Scripting isn't free. And fans of Big Scripting (like me) have to be careful or their missions end up choking the CPU. If you doubt that's possible, take a look at MFCTI -- a revolutionary concept, sure; but also an object lesson in the limitations of Big Scripting with no concern for CPU.
Likewise, reading surfaces. You could track say 5 bullets with no gravity as they hit the wall in slow motion, calculate the angle of the surface, and that way get the angle for the bullet to bounce off of. But you couldn't do that for 1000 bullets.