Translating, the original problem was:
(if (null? xs) (cdr xs) xs)
So: (define (mytl xs) (if (null? xs) (cdr xs) xs))
And: (mytl '())
Error: (cdr) bad argument type: ()
It appears (mytl) emits a type error in this instance.This is obviously a run-time error, and without specific effort I don't think it would be known at compile-time in the Scheme implementations I'm familiar with.
Since the Scheme expression appears to embody the semantics of the original problem, I'm inclined to think it shows an underlying difference in the handling of the null list between CL and Scheme implementation I used.
If I'm completely wrong, and I can't rule out that possibility, I hope someone will point in the right direction.