I'm not claiming any expertise here, never having wanted to solve this type of problem in a real program. Clearly, if the algorithm fails for your example, which it certainly looks like it might, then either the claim that the heuristic only needs to be admissible is wrong, or you understanding of what it means to be admissible is not correct, or possibly you are not meant to have 0 cost paths. The wikipedia article you link to seems to imply there is more to both the algorithm and the function f(x) than just your heuristic. If I were you I would take the trouble to implement the algorithm - the Wikipedia pseudo-code looks like a good basis, and there look to be links to C++ implementations.

In my experience one gets a much better understanding of a complex algorithm by really implementing it and tracing through the decisions made by the computer than by trying to work through an example in one's head, because it is all too easy to make a mistake that way. Often you will find the computer does something you did not expect, and when you come to study it you will find there was a flaw in your understanding.