Yes, there is. If the items that comprise your tagpath are updated, even if yielding the same result path, the entire expression containing the tag() function will have to execute. With indirect binding, this doesn't happen. The strings themselves have to be reconstructed every time, even if not changing, slowing down the final expression execution.
There are a few cases with computed gateway tags where the tag() expression is the only good way to do indirection, and the dynamic stuff above doesn't happen anyways. Anywhere else is a mistake, IMNSHO.