There still doesn’t seem to be an easy way to do this, but at least there is a way now. With the introduction of matplotlib.patches.FancyArrowPatch it is now possible to draw a decent arrow like this:
from matplotlib.patches import FancyArrowPatch
ax=gca()
ax.add_patch(FancyArrowPatch((9,0),(9,0.5),arrowstyle='->',mutation_scale=30))
UPDATE: This is not working with newer matplotlib releases…
UPDATE: I have updated the code so it should work again.
UPDATE:For a more native solution: more-on-arrows-in-matplotlib
There really is a problem with the matplotlib arrow implementation. The figure shows the problem (right) and a possible solution (left).

I’m still working on the new arrow code… A draft have been mailed to the matplotlib devs.
Update: You can find the newest iteration here