Esto no es una respuesta completa y sólo una discusión acerca de la diferenciabilidad de $f$.
Tenemos que
$$ 0=f(x+0)-f(x-0)=2f'(x)f'(0)\implies f'(0)=0$$ because in other case $f$ es constante.
Ya que si $f$ es una solución, a continuación, $f+c$ es también una solución suponemos $f(0)=0$ WLOG.
Tenemos que
$$f(2x)-0=f(x+x)-f(x-x)=2(f'(x))^2\implies f'(x)=\pm \sqrt{\dfrac{f(2x)}{2}}.$$ So, $$f(2x)\ne 0\implies \exists f''(x).$$
Deje $x_0\ne 0$ ser el menor valor positivo tal que $f(2x_0)=0.$ es $$f(x_0+y)=f(x_0-y), \forall y.$$ Since $$f(y)=f(-y),\forall y$$ we have that $f$ must be periodic with period $2x_0$. De hecho
$$f(2x_0+y)=f(x_0+x_0+y)=f(x_0-x_0-y)=f(-y)=f(y).$$
Por eso, $f''(x)$ existe en $\mathbb{R}\setminus\{kx_0|k\in\mathbb{Z}.\}$
Deje $y_0$ ser un punto tal que $f'(y_0)\ne 0.$
\begin{align}
f''(0) &= \lim_{h\to 0}\dfrac{f'(h)}{h}\\&= \lim_{h\to 0}\dfrac{f(h+y_0)-f(h-y_0)}{2hf'(y_0)} \\&= \dfrac{1}{2f'(y_0)}\left(\lim_{h\to 0}\dfrac{f(h+y_0)-f(y_0)}{h}+\lim_{h\to 0}\dfrac{f(y_0)-f(h-y_0)}{h}\right) \\&=1.
\end{align} Esto muestra que $f''(x)$ existe $\forall x\in \mathbb{R}.$
Ahora, tenemos
\begin{align}
f'''(x)&=\lim_{h\to 0}\dfrac{f''(x+h)-f''(x)}{h}\\&= \lim_{h\to 0}\dfrac{f'(x+h+y)-f'(x+h-y)-f'(x+y)+f'(x-y)}{2hf'(y)}\\&=\dfrac{f''(x+y)}{f'(y)}.
\end{align} Esto muestra que $\exists f'''(x),\forall x.$
En una manera similar, podemos demostrar la existencia de $f^{(4)}$ con que
$$f''(x+y)-f''(x-y)=2f'''(x)f'(y).$$
Por lo tanto la respuesta dada por @Qmechanic incluye todas las posibles soluciones.