Ну понятно что типы данных разные, просто концепция "все что не #f будет #t" заходит и вполне удобна для абсолютно любых типов данных. Но чисто с практической точки зрения я пока сходу не могу придумать, где '() должен быть именно типом "пустой список", а не #f. Ведь на практике от пустого списка только и требуется что проверить его на пустоту, почему бы сразу как какой-нибудь алиас к #f его не представлять +)