What's interesting is that the NV30 still has register combiners in addition to fragment programs.
That is, after you've exhausted your 1024 instructions in your fragment program, you can still process the result using 8 general combiner stages.
NVidia left in register combiners because for old-style multitexturing they will be much faster on older games.