I think people were sometimes parenthesizing (foo::max)() out of misplaced concern that an unparenthesized foo::max() would trip up Windows' max(a,b) macro. However, this is not the case: max(a,b) should be tripped up only by an unparenthesized call to foo::max(a,b), and in fact we already do _VSTD::max(a,b) all over the place anyway without any guards.
However, in order to do it without guards, we must also wrap the header in _LIBCPP_PUSH_MACROS, which <span> was not.
(For reference: The charconv pieces were originally added in D41458.)