Yes, I think it is a bug - RFC2445 shows some examples when DTSTART has a timezone:
DTSTART;TZID=US-Eastern:19970902T090000 RRULE:FREQ=DAILY;COUNT=10 The internal processing sequence should be changed to (pseudo code): $tz = $dtstart->tz $dtstart = $dtstart->floating return $recurr( $dtstart )->set_timezone( $tz ) - Flavio S. Glock