Из ссылки для std::optional
конструкторов:
constexpr optional() noexcept;
constexpr optional( std::nullopt_t ) noexcept;
Создает объект, который не содержат значения.
Так что да, инициализированное по умолчанию std::optional
не имеет значения, но оно не является неопределенным.