Aditya, you can make your fine solution a little more rigorous.
First note that
f(0) = f(1)=1 can be directly obtained. By the way this means the function is not injective.
Further
f(x)+f(x^2) = f(-x)+f(x^2) \Rightarrow f(x) = f(-x)
Hence it suffices to investigate the function for x≥0.
To proceed as Aditya has done, we need an additional assumption that f is continuous (or maybe it can be proved from the equation somehow, but the point is you need f to be continuous to take those limits inside the bracket).
Suppose 0<x<1
f(x) = f(x^4)=...= f(x^{4n})=..
implies that f(x) = \lim_{n \rightarrow \infty} f(x^{4n})= f \left(\lim_{n \rightarrow \infty} x^{4n} \right) = f(0) =1
Suppose x>1, then
f(x) = f(x^{\frac{1}{4}})=...= f(x^{\frac{1}{4n}})=..
implies that
f(x) = \lim_{n \rightarrow \infty} f(x^{\frac{1}{4n}})= f \left(\lim_{n \rightarrow \infty} x^{\frac{1}{4n}} \right) = f(1) =1