As a generic filtering mechanism this is a no-go, doing this breaks multilib as Fedora uses it:
%global _use_internal_dependency_generator 0 \
One thing I thought was obvious here is that the above line is only ever invoked if %filter_setup is actually invoked. The entire macro is %defined, not %global, and is wrapped in an %expand macro, so it will only ever be evaluated if a spec actually uses it, along the lines of: