And you are wrong because you can define a loop as iterating recursively over a list with just car and cdr.

Can but since other constructs exist that doesn't by itself make TCO "must have"