thats correct.
There's a simpler method though.
As you rightly observed, f(x) = x does not have real roots implies f(x)>x for all real x or f(x)<x for all real x.
We will just look at f(x)>x as the same reasoning holds for the other case too.
We have f(f(x))>f(x)>x for all real x and hence the equation f(f(x)) =x has no real roots
finis!