Gah. Nice idea, but the double-operator hack seems quite painful and error prone, especially with operators right in the middle of the precedence hierarchy.
This might be one of the few rare justifications for overloading the comma operator, for syntax similar to that of Haskell's backquote:
arbitrary+expr ,foo, arbitrary-expr
Then the ,foo, would get processed last, letting the expressions evaluate first, which matches the semantics of Haskell's infixing backquotes (lowest precedence by default).Even then, though, that would get ugly in a hurry when mixed with function calls, requiring parentheses for sanity.