What Are the Limitations of a Canny Edge Detector?
From my experience, the following points are limitations:


The result is binary. You sometimes need a measure of 'how much' the edge qualifies as an edge (e.g. intensity image coming from a Sobel amplitude edge detector)
The amount of parameters leads to infinitely tweaking for getting just that little better result. 
You still need to connect the resulting edges to extract the complete edges that seem so obvious for the human eye+mind.
Also due to the gaussian smoothing: the location of the edges might be off, depending on the size of the gaussian kernel.
The method has problems with corners and junctions:


The gaussian smoothing blurs them out, making them harder to detect (same goes for the edges themself)
The corner pixels look in the wrong directions for their neighbors, leaving open ended edges, and missing junctions



This last problem is addressed by the SUSAN method, which connects edges better and also results in nice junctions, as shown by these example figures as given in the linked paper:

Test input image: 



Results SUSAN:



Results Canny:



You can clearly see SUSAN finds the corners and junctions instead of Canny.