Using tag() also works for me in the Expression binding section. Given that the Functions menu is provided in the Tag->Expression binding section, this leads me to believe that using tag() there should also be valid.
Additionally, I’d believe that using the {[tag_path]} format in the Tag->Expression section should be valid, since that’s how it’s written when using the Browse Tags menu item.
Expression mode doesn’t work the way you’re expecting it to. The expression given should itself evaluate to a tag path - so "[System]Gateway/SystemName" works - but passing {[System]Gateway/SystemName} is trying to find a tag named whatever your gateway name is - which fails, hence the error.
Think of it as being wrapped in the tag() function - it’s a way to more easily construct a complicated indirect reference - with the benefit that (at least in theory) it can be bidirectional.