I have played 3.5e for over 13 years, and I have never had any issue with it. As a DM, I only limited my players regarding certain feats and spells. No wishes, no flying, no perma waterbreathing racial ability (unless temporary by potion or spell, or druid shapeshift). This was because I ran an aquatic campaign, so I chose to always make water a hazard that felt dangerous.
But me and my players played to epic level, to the point where our Druid could summon an Elemental Monolith the size of Godzilla. It meant having to scale the challenges accordingly. At a certain point, the CR system breaks down a little. I tended to always balance my encounters at +2 of what the rules said would be appropriate for their party level.
Heck, we even added our own rules for firearms, which worked fantastic. I also added random encounter tables, random weather, mass combat rules, a random drunk table, new weapons and items, ship upgrades, new monsters. We customized the heck out of 3.5e, though never straying from its core rules.
Yes, at some point all the addition of bonusses became a little cumbersome. But I was never under the impression that 3e was a badly designed system.
My advice to run 3.5e games:
-Use party wide experience
-Restrict spells or abilities that can seriously derail your campaign, such as wishing.
-Increase or decrease the recommended CR of foes based on your experience with the strength of the party.
-Only make your players roll dice if the outcome of an action is uncertain. Don't make them roll spot checks in an empty corridor.