盛り上がってるところですけど、横から失礼します。

基本的なことを少しだけ。
Optional型はenum定義で、NoneとSome(T)が含まれています。
だから、.Noneと.Some(T)の値を持てます。
実際の値は、.Noneはnil、.Some(T)は指定されたデータ型の値です。

たとえばInt型のOptional(データ型の表記はInt?)だと、
.None // 値はnil
.Some(i) // iはInt型で、値は… -1, 0, 1, 2, …
のどちらかになります。

で、本題だけど、、、、、.Some(nil)って、何でしょうか?
Optional型のenum定義には含まれていません。
コンパイルエラーになるはずです。