The answer, apparently, is no, you cannot run Firefox with CromeOS. You can root the device and install it manually, but I'm not sure how well that works.
MS is doing the exact same thing as Apple with iOS Safari and Google with ChromeOS. Not sure why they're evil here, but oh well.
Some clarification is in order here. Flipping an explicitly provided and documented switch is not "rooting" the device. That carries the connotations of hacking around some form of enforced security getting in your way.
And yes you can install it manually without hacking the OS... It's just a form of Linux after all. Go bug Firefox and get them to offer a package that works with the OS if this is too much trouble.
Now, is your problem that they don't go out of their way to add compatability for random third party packages on a cloud based OS? You're not the target market, then :P
I'm not bothered by Google, Apple's, or MS' decision, really. It's just that answering "Can you run Firefox on ChromeOS" with "You can run Firefox on a Chromebook... if you run Ubuntu" just doesn't help anyone that actually wants to run ChromeOS.
Also, I'm aware that it's just flipping the switch. It's not, for example, the same steps you need to do to root a Kindle Fire, but it's still the same result: You still need root access to install(and possibly run) Firefox with ChromeOS.
It would be like taking a system designed explicitly for Konqueror, for KDE, and all of the specific things that entails, and then turning around and wanting to reconfigure that system to use Dillo or Iceweasel or something else.
What (security?) do you give up by moving to developer mode?
not without it's usual validation which makes it non trivial to implement.
Not very well, though.
NaCl supports JIT, basically enough for Mono. But it does not support self-modifying arbitrary asm code, which is absolutely necessary for fast JS, PICs need that.
Also, NaCl increases code size significantly due to its sandboxing mechanism.
Finally, NaCl performance is good on x86 but less so on x86_64 and ARM, again due to how it sandboxes (on x86 there are some nice tricks that make it work better).
Finally, you would need to port to NaCl. It isn't trivial, you need to use the Pepper APIs.
So you could run Firefox, but it would need to run JS in the interpreter, it's code size would be very large and performance would be significantly slower than a true native app. It would not be a competitive browser on a Chromebook due to those large limitations. So practically speaking, Chromebooks do not allow other browsers.