No, there is no way to edit the "raw" code produced by construct 2. You're welcome to try - you can skip minifying and the output is open - but I don't think it's understandable, or even if it is, it's not worth the effort. The way to work around those limitations, since you know javascript, is to learn the API and write custom plugins - they work great for the majority of the cases, even if it takes some thinking.
Yes, there are loops - while loops, for loops, foreach loops, ordered loops, it's all there.
There are also functions now, albeit a bit primitive since they aren't first class citizens, and they don't really know what scope is.
It is possible to organize your code, and I personally am always trying to steer scirra towards improving the event system to make things more manageable (I think this is way more important than cocoonjs/awesomium/windows 8/etc, but they have to make money), and it's not like they're slacking - the newest additions are containers and functions, and they work well enough (though they could be improved a lot).
Overall, however, writing raw javascript code will always give you more power, but remember you'd be writing a whole new engine, complete with collision detection, object picking, memory management, drawing, loading...
Writing plugins may be more work than cramming a solution inside your own engine, but it's not that much work, the cost of writing an engine is gigantic, and the end result if you do write a construct plugin is an extremely modular piece of code that can be shared with the community and reused in other projects.
I used to think it was a bother writing custom plugins for every little thing, but now I honestly think it's worth it.