(car nil) = (cdr nil) = nil
Почему это логично, а вот почему:
If x is a cons, car returns the car of that cons. If x is nil, car returns nil.
If x is a cons, cdr returns the cdr of that cons. If x is nil, cdr returns nil.
Это про list.
The only object of type null is nil, which represents the empty list and can also be notated ().
Передал пустой список, получил пустой список, в чем нелогичность? У пустого списка нет car, нет cdr.