Cruft cleanup.
Efficiency.

How many times shall we test for null?
Why retrieve the annotation (which never throws) when it's
only checked if the value is null?

Also: remove ancient TODO. That may be why the annotation was
retrieved... so that the value could be validated against
other constraints of the annotation. But since that's never been
done I'm going to assume we're fine with not starting now.
Efficiency.

How many times shall we do a map lookup?
Previously it was 1 for a missing value, 2 for an invalid value,
and a full 3 times for a valid value.
Let's cut that down to 1, or 2 if the value is null or missing.
Not benchmarked, but I would think that having a value is
the common case.