Hi,
We have currently
sage: x, y = var('x y')
sage: fyx = function('f')(y, x)
sage: fyx.arguments()
(x, y)
which is just the reverse of the expected output.
Similarly, we have
sage: atan2(y,x).arguments()
(x, y)
Taking a look at the code, one sees that fyx.arguments() calls fyx.variables(), which returns a "sorted tuple of variables that occur in this expression" (according to the documentation). The "sorted" action explains the result. But the latter remains plain false.
Note that SymPy provides the correct result:
sage: fyx._sympy_().args
(y, x)
sage: atan2(y,x)._sympy_().args
(y, x)
Eric.