>(list a)となってエラーになるはずなのに、ならないのは何故なんでしょうか?
これは「a が変数として処理されて、エラーになっちゃうはず」という意味で解釈して返事すると……

実際は (list 'a) となる。
'a は変数として扱われないのでエラーにならない。
'a はシンボル型というもの。シンボル型っつうのは文字列の親戚みたいなもん。
(こんな説明したら他の人から怒られるか)