Thanks everyone for your comments.
Just to clarify, I'm actually running my circuit from a 6 volt power supply, but I was using the 5 volt specs from the datasheet, since they are closest to my supply voltage.
I went back and rechecked my measurements. With a six volt supply, and driving the relay with two gates in parallel, the relay coil draws 9.75 mA, and the voltage across the coil is 4.85 volts. So the gates are dropping 1.15 volts. That means that two gates in parallel have a resistance of 118 ohms. Hence, a single gate would be 236 ohms. Using a single gate, the current draw would then be 6/(236+500)=8.15 mA, which is what I had measured earlier. This would give a voltage on the coil of 4 volts which is still enough to pull in the relay. The relay is a Littelfuse/Hamlin HE721A0500. According to the relay datasheet, its minimum pull-in voltage is 3.75 volts.
So, these numbers definitely support the position that the CMOS outputs are resistive, and not current sources.
As mentioned earlier, I tested this circuit with chips from different manufacturers, including some very old stock dating back more than 30 years, both 4011 and 74C00 chips. They all behaved exactly the same. So, I have to assume that these are typical characteristics, and not some anomaly related to a single off-spec chip.
I'm not sure whether I'll use a relay in the final circuit. I may end up using a MOSFET to switch the load, as long as I can find one with extremely low off state leakage.