Why more poles than zeroes?
I think the system is always non-causal if it has more zeros than poles. @Hilmar, your implementation might be possible digitally but if you see a transfer function like this:
$H(z) = \frac{(z-1)(z-2)}{(z-3)}$, taking the inverse Z-Transform,
$y(n-1)-3y(n-2) = x(n)-3x(n-1)+2x(n-2)$ is clearly non-causal and cannot be implemented real-time(of course you can store the signals and do processing offline, but real time implementation is impossible). So I guess Non-Causality is the answer, apart from the infinite high-frequency gain.

Update by Val
Ok, I understand now. In wikipedia, we see that $$a_0 y_n + a_1 y_{n-1} + a_2 y_{n-2} + \cdots = b_0 + b_1 x_{n-1} + b_2 x_{n-2} + \cdots$$ is identical to $$H(z) = {b_0 + b_1 z^{-1} + b_2 z^{-2} + \cdots \over a_0 z^{0} + a_1 z^{-1} +\cdots}.$$ I have finally noted that there are no positive powers. That is, $a_0$ corresponds to the current output, $z^0 = y[n]$, and $\cdots = a_{-2} = a_{-1} = \mathbf{0} = b_{-1} = b_{-2} = \cdots$. If we had more zeroes then we have more power in the nominator and, after normalizing $H(z)$ so that $a_0$ has $z^0$, we still have a positive power of z in the nominator, which means that output depends on future input.

In the simplest case, $Y(z) = zX(z)-x_0$ corresponds to $y[i] = x[i+1]$, that is output depends on future input (we can also drop $x_0$ assuming our sequences are causal, i.e. $0 = y_{-1} = x_0$ aka $z^{-1}Y = X$ or $Y = zX$). It is curious that causal is an example of non-causal. Could anybody clarify it further?

It also worth noting that $(1-az^{-1})(1-bz^{-1})$ is not a zero of order two. It has equal number of zeroes and poles, since it is equal to $(z-a)(z-b)\over z^2.$