The semantics of checking "has_value()" (etc.) are much better than checking for an empty span when dealing with the result of an attribute lookup. This mainly affects the Bezier curve handle position attributes currently. Plenty of places assume those attributes exist now. In a couple places the code is a bit safer now, otherwise it's just a bit more obvious. Pull Request: https://projects.blender.org/blender/blender/pulls/144506