Помогает, потому что есть разница между значением None и отсутствием значения. В go для этого иногда используют указатели в полях структур(в тех же orm NULL мапится на nil, например).
Так значение None - это же и есть отсутствие значения, нет?
Просто семантичесик мне кажется это оно есть, ссылка с None == nil указатель
Optional , если говорить про функциональную обертку, то просто дает удобный декларатиный интерфейс для того .чтобы описать какие действия сделать со значением, или что сделать в его отсутствии. Позволяет работать с сценарием отсутствия без явных проверок