I gotta say from my experience, if you want to do embedded 6502 projects, your best bet is to learn assembly language. C is great and all, but for practical purposes, especially since you are probably gonna be banging hardware, you will want to do it at the machine level.
Now, for programming on the C64/128, C would probably turn out useful, if just academic. IIRC, C can be used to program GEOS applications (someone correct me on this, please,) which would seem to be much more practical as you are programming on top of an operating system with a hardware abstraction layer.