Changes to the struct update syntax

Yes and no. Look that depending on how you write the code it may be less obvious:

user_input
|> Code.eval_string()
|> then(fn {struct, _bindings} -> struct end)
|> then(&apply(SomeModule, :update, [&1])

This way all compilers and tools would have to parse every string to support it and I guess there are much more cases that makes things like that complex.