なんで cons cell の構造が違うだけなのに、リストのように出力されたり、ドット対のような変な点が入ったりするのかを説明するのが一番難しいと思う。
Lisp の構文よりも、ここの方が Lisp 最大の壁なんじゃなかろうかと思う。別にこれは cdr 部が nil になっているような cons cell をリストとして特別に扱っているだけなんだけど、他の普通のプログラミング言語ではそういうことをしてないんで難しいと思う。普通はリストならリストというデータ構造が提供されていて、何かを「リストと見做す」ということはやってない。