Cosine similarity is correlation, which is greater for objects with similar angles from, say, the origin (0,0,0,0,....) over the feature values. So correlation is a similarity index. Euclidean distance is lowest between objects with the same distance and angle from the origin. So, two objects with the same angle (corr) can have a far distance (Euclidean) from one another.
I wouldn't say that Euclidean distance is useless for anything. Correlation will identify objects with similar feature values but with additive or multiplicative translations between the objects. For example, two objects $\textbf{x}_i=(1,2,3,4)$ and $\textbf{x}_j=(1,4,6,8)$ which are a multiplicative constant of 2 away from each other will have perfect correlation (unity). Also, two objects $\textbf{x}_i=(1,2,3,4)$ and $\textbf{x}_j=(1.25,2.25,3.25,4.25)$ which are an additive constant of 0.25 away from each other will have perfect correlation (unity). However, Euclidean distance, $d(\textbf{x}_i, \textbf{x}_j)>0$ -- will be greater than zero.
The problem you are looking for is called the "overlap problem", where in the above two examples of perfect correlation, objects can be perfectly correlated but with different distances.
In hierarchical cluster analysis, if you want agglomeration of objects with almost the same levels of features values (i.e, almost the same objects), you would use Euclidean distance. However, if you want to agglomerate together objects with similar patterns that may vary by constant additive or multiplicative translation, then you would use correlation, or 1 minus correlation, which makes correlation look like a distance with range [0,2].
In biology for example, you want to preferably use correlation to identify genes which may be co-regulated or associated (correlated), whose expression patterns correlate together ("co-vary" --> covariance) over the objects. In this case, however, using Euclidean distance would only identify genes with the same level of expression, which won't mean much when trying to find co-regulatory genes. Euclidean distance is best for finding like objects with feature values that are low or high together.
FYI-curse of dimensionality is commonly a problem that creates the "small sample problem" $(p>>n)$, when there are too many features compared to the number of objects. It doesn't have anything to do with distance metrics, since you can always mean-zero standardize, normalize, use percentiles, or fuzzify feature values to get away from issues of scale.