If you set a vector with VECTOR-SET! and a string with STRING-SET!,
why do you set a pair with SET-CAR! and SET-CDR! instead of CAR-SET!
and CDR-SET!.
To be totally uniform it should be (PAIR-SET! <pair> <index> <value>) where
index is 0 or 1, one of them meaning CAR, and the other meaning CDR. :-)