I've been using Ctrl+] the whole time, and it works well for me.
You claim that Ctrl+] doesn't look at preprocessor settings, but I am observing different behavior.
When I make the 3 defines as undef in the preprocessor settings, Ctrl+] (not [) IS working properly.
And when I don't make these 3 defines as undef in the preprocessor settings, I get the same behavior as you.
Did you try Ctrl+] (not [) with the preprocessor settings? Because when I try it, it works for me.
So I think Ctrl+] is using preprocessor settings, but select-proc is not?