I have hit upon a solution.
Namely, using ExpressibleByNilLiteral
as a generic constraint :D
e.g.
private func _wrappedValue<T>(_ type: T.Type) -> T where T:ExpressibleByNilLiteral
in tandem with
private func _wrappedValue<T>(_ type: T.Type) -> T
(top only gets called if T is some optional)