One thing I know for sure is that even if a site only had one keyword on it, it would be possible to rank for more than one keyword; in theory, based on the fact that a keyword being in the text of a site is not a requirement for the site to rank on that keyword. Which means that you can't even use the site's own text as a 100% based line for mapping a site's rankings across all possible keywords.
Is it possible to find all the keywords for a site that rank it in the top 10 results? If so, how?
seo;competitors
SeMRush is a good tool for this, it obviously won't be a comprehensive list of keywords, but the most accurate and comprehensive info I've seen.