Oracle DBA here who hates their licensing, practices, etc. as much as the next guy, but I have to hand it to their query optimization. I've seen their optimizer get better with every major release, and yes, regression testing will always turn up a few problems but Oracle gives you the best tools to analyze and override the decisions that the optimizer is making when necessary (and I'm not just talking about basic hints here)
So, you changed code and didn't test it. Yup, definitely Oracle's fault.
Sometimes you just aren't going to pick up this sort of thing in testing as you'll only know about it under full production load. Their CBO is pretty powerful, but by and large it's often difficult to know why it makes certain decisions. And that's even when you use their full suite of profiling tools!
That's not even really a CBO issue. But I hear your pain :-)