Seeing as how all this is supposed to be so difficult how did it come about VitalyB managed it, with no documentation and millions of lines of code?
He had the requisite skill set, and invested a lot of time. He also started small, the CHDK you see now is the product of many thousands of person hours of work by many people.
IIRC one of the early Canon firmware update was released with a lot of debugging info in it, and the early cameras ran VxWorks, so the OS actually had documentation readily available.
All I'm trying to get across is that you need specific skills to even find out if what you want is possible, and if you do have those skills, you will still need to invest a lot of time. You cannot expect this forum to teach you, it's not practical to give a couple of university level courses in forum posts. You can teach yourself, but you shouldn't expect it to take less time and effort than formal education would.
How were we able to get this far?
Lots of skilled people investing a lot of time. E.g.
http://www.ohloh.net/p/chdk/estimated_cost (don't take the specific estimate too seriously, it's just to give a general idea of how much effort is involved)
Also, do you think if I wrote to Canon or found an actual programmer of theirs might they help me or will this not be fruitful because of nda's or general unwillingness?
Please don't do this. I'm certain individual employees would be prohibited from sharing proprietary information. Don't bug them about something that could cost them their jobs. For the company as a whole, any sort of official endorsement or support would be a huge can of worms, if they have to take an official position on CHDK, it is highly unlikely to be positive. Benign indifference is the best we can ask for.