ну, любой обобщённый тип можно конкретизировать по месту использования, в месте использования он имеет конкретный смысл, если это какое-то промежуточное утилитарное вычисление, то можно его склеить с другими, пока не выйдем в осмысленные значения в контексте приложения, но если его можно счейнить, то можно не таскать Option<Option<T>>, он будет, но явно его указывать не надо будет.