functional equation $f(x^2)=xf(x)$
Suppose $f(x)\ge0$ for $x>1$. Let $2^{g(x)}=f(2^{2^x})$. Then we have
$$g(x+1)=g(x)+2^x$$
Now let $g(x)=h(x)+2^x$ to get
$$h(x+1)=h(x)$$
That is, take any 1-periodic function for $h$ and you will have a solution for $f$ when $x>1$. One can construct the function on the negatives using $f(-x)=-f(x^2)/x$, and another solution for $|x|<1$ in the same manner by considering $f(2^{-2^x})$. As the cases when $|x|=1$ do not depend on other values, they can also be defined on their own.
Supposing $f(x)<0$, we can use the same procedure but with $2^{g(x)}=-f(2^{2^x})$ or likewise as stated above.
An example solution, not of the provided form:
$$h(x)=\sin(2\pi x)$$
$$g(x)=\sin(2\pi x)+2^x$$
$$f(x)=2^{\sin(2\pi\log_2(\log_2(x)))}x$$
which is clearly not linear.
Note that the continuity requirement requires $\lim_{x\to-\infty}h(x)$ to exist, and hence it must be constant in such a case.
When $f$ is continuous, we consider the sequence $x_n = x^{1/2^n}$, which tends to $1$ for any positive $x$. We can show that $f(x^{2^n}) = x^{2^n - 1} f(x)$. For instance, $f(x^4) = x^2 f(x^2) = x^3f(x)$. It follows that
$$f(x) = f(x_n^{2^n}) = x_n^{2^n - 1}f(x_n) \to xf(1).$$
We also have $f(0) = 0f(0) = 0$ and $$f(-x) = \frac{1}{-x}(-xf(-x)) = \frac{1}{-x} f(x^2) = \frac{1}{-x}(xf(x)) = -f(x).$$
Therefore, if $f$ is continuous, then $f(x) = xf(1)$ so $f$ is linear.