@Ian:
I'm afraid this may again open one of those long-ended discussions as to whether one should program in C or ASM. And, truly speaking, if there are no other compelling reasons (speed, size, etc.) there is no correct answer, other than "what makes you feel good."
As far as well-architectured microcontrollers are concerned -- like Freescale's -- I'm categorically for ASM only. But that's just me, a die-hard minority! Would I program a PIC in assembly, though? I seriously doubt it. Would I program in ASM for ARM? You bet!
My best answer to "how far one would go .. before switching to C" is "as far as one would go before switching away from C to something else." Would you reach a point of size or complexity that you would consider abandoning C for something 'better'? Possibly not. So, why would I do so with ASM?
You make it sound like if your project gets too big or too complex, you 'certainly' can't easily do it in ASM and you will inevitably have to switch to C. Having far too many projects on my back to disprove such claims, it all becomes a matter of comfort level. If you're comfortable with something, it does not make sense you change it, especially when that something gives better results from the alternatives.
(I will end with this: For me, the only reason I would consider using C for MCU development is if somebody above me told me I had to. But, luckily, where I work, there's no one above me! :smileyhappy:)