Most OSs already package tl::expected:
https://github.com/ros/rosdistro/blob/ce6215c8180dbe202191ad29f90e7df5cd95e1c3/rosdep/base.yaml#L3795-L3806
It would make sense to just use the system include path in that case and use the baked-in version only for OSs that do not have tl::expected from package manager.