The functional equation $f(xy)=f(x)f(y)$ Let $f(x)$ be a function that satisfies this functional equation, $f(xy)=f(x)f(y)$.

With a little bit of intuition and luck one may come to a conclusion that these are perhaps the solutions of $f(x)$,


$f(x)=x$
$f(x)=1$
$f(x)=0$


However, these solutions are family solutions of $f(x)=x^n$. What I meant by this is that, when $n=1$ you get the function $f(x)=x$. When $n=0$ you get $f(x)=1$ and when $x=0$ well you get $f(x)=0$.
So, it seems $f(x)=x^n$ is the genuine solution to that functional equation and when you're taking different values for $x$ and $n$ you're getting bunch of other functions of the same family. 

Getting excited by this I tried to take different values for $x$, for instance when $x=2$, $x^n$ becomes $2^n$. So, now I'm expecting the function $f(x)=2^n$ to satisfy this functional equation $f(xy)=f(x)f(y)$. However, it doesn't. I don't know why it's not satisfying. May I get your explanation?
If you take the equation
$$ \tag{*} f(x) = x^n $$
and "set $x=0$", what you get is not $f(x)=0$, but
$$ f(0) = 0^n $$
which does not define a function -- it only says what the function value must be at $0$ (and doesn't even do that until you decide what $n$ is).

As @lulu pointed out in comments, your assumption that every solution of the functional equation must have the form $\text{(*)}$ is simply not true. $f(x)=0$ does not have this form, and there is an infinity of "wild" discontinuous solutions too (at least if we assume the Axiom of Choice).
We may prove that the non-identical function $f(x)$ which is continuous over $(0,+\infty)$ and satisfies $$f(xy)=f(x)f(y)$$ is $$f(x)=x^\alpha$$ only.