A theoretical weakness is IMHO defined as one that hasn't been attacked in practice. Sometimes it is clear that it never will be attacked (e.g. an attack on AES that leaves 126 bits of security instead of 128), but at other times it will be close enough (SHAttered) or attacks can be improved (the attacks on MD5).
Are there any other categories? I don't think so as the definition of a theoretical attack consist of the negation of the definition of a practical attack. Maybe there is a bit of grey area (a computer being at 80% of an attack that is known to work) but negation doesn't leave much space for other categories.
A practical attack considers all possible adversaries; if only one of those breaks the algorithm then it is a practical attack. Let's do a little thought experiment and have a baby be amongst the adversaries. We would not call it a theoretical attack just because the baby isn't able to break the algorithm.
Of course a source of information could always break with the above definition by providing enough context, e.g. by singling out the NSA or a company secretly having a quantum computer. And that also gives rise to the other problem: what's counted as a theoretical attack to one person might be a practical attack to somebody that has performed it.
We can easily replace the baby of the previous thought experiment with an advanced civilization at the other end of the universe. Maybe that makes the attacks on, say, large-size RSA practical, but we'd still call them theoretical.