"The process involved coming up with an idea, presenting it and getting approval to run with it. You would then repeat this approval process at various stages during development. It was, however, very hard to get approval for enough resources (both time and people) to finesse an idea long enough to make it obviously a good or bad idea. That aside, I found it very demoralising to not have the opportunity to write code that people could use."
The early Chrome people indicated a similar frustration with upper management once Firefox got popular.
Expense approval is less clear, because it's not obvious which things your immediate manager can approve and which need to be kicked higher up the chain. But in my experience asking your manager works pretty well. It's possibly I've been lucky with managers.
How could Mozilla compete against Google (or even Apple) to pull this talent?
Again: Big money wins (exception being those organizations that are both big and inept).