k-means will always find k distinct clusters, even if some of the clusters it finds are actually bunched-up together. You always get the prescribed number of clusters, and there's nothing keeping you from getting inconclusive results, even when choosing k using the elbow method.
Having said that, it's also important to keep in mind that you can't visualize your high-dimensional results directly, and therefore judging whether your 7 clusters are "separated" or "bunched up together" may not be as straightforward as you seem to suggest in your question.
Most lower-dimension projections will remove (at least some of) the information about the distance between data points - in the same way that if you see two aircraft just barely miss each other when looking straight up from the ground, it's more likely that in fact there is a significant vertical separation between them, which you cannot perceive from your vantage point.
Consider these alternative/ complementary algorithms to apply on your data in order to better understand the relationships between your clusters:
The Gaussian Mixture Model is, very roughly speaking, analogous to K-means (in the sense that they both work in the Euclidean space). Its outputs include a vector of cluster affiliation probabilities for each data point. So, if two or more clusters are less distinct and lie close to each other, you will see many data points splitting their probabilities among those clusters.
The Mean Shift algorithm is another clustering algorithm, similar to K-means in some respects, but it allows cluster centroids to "snap together"merge together in the training process. Therefore, with this algorithm, if you start with a "too high" number of clusters for your data, your results may show a number of clusters smaller than the initial k.
Both models are available from libraries in both R and Python.