In the one corner case where f(f(x*y)) would have some utility
Such "corner cases" include for example iteration or recursion which I'd say is a pretty common thing to do for computers nowadays. Generally you can write
f^0 = id
f^(n+1) = f(f^n)
which is consistent with sin^(-1) notation, and is especially common in areas of mathematics that are close to computer science.
The problem is not that it isn't properly defined, the problem is that it is not consistent.
Amazing how Math people seem to be able to handle such inconsistencies then.
The readability or usability by humans was never questioned. The only argument is about whether the notation can be used for writing computer programs. To keep compilers simple, they need to build a syntax tree first before they can apply semantics. The inconsistencies vastly complicate this. (What would you suggest? Markov chains to predict whether an upper index means composition of functions or composition of their output?)