CalDAV seems to solve the color issue, but there's another huge problem with colors when you add iCalendar calendars (i.e. a url to a .ics file). When you add an iCalendar calendar, the iPhone apparently just picks a random color to assign to it. I have to view several of those on my phone, and with each of my calendars, I had to add the calendar, open the calendar app to see what color it got, curse when I saw it had the wrong color, then go back to settings and delete the calendar and try again. Multiply that by several calendars and I had a whole evening of work. The worst part is that the iPhone doesn't recognize Apple's own X-APPLE-CALENDAR-COLOR header that sets colors in iCal.
At least there are only 5 possible calendar colors that it will randomly pick, IIRC. Also, I've never had the colors spontaneously change before. If it did that, knowing what I went through to get the colors right, I'd probably throw the phone through a wall.
_________________________
-Aaron