All true but consider writing templates/generic code, where "logger" might be a std::optional or a std::list/vector/whatever. Same syntax, different types. Pre-C++26 you'd need a specialization for std::optional, now you don't.
Fair point, but my imagination’s failing me at the moment. What kind of function would accept something where Optional makes sense and also a list/etc.?
I’m not asking to dispute. I want to be enlightened!