The :link pseudo-class applies for links that have ‘not yet been visited’ and :visited pseudo-class applies once the link has been ‘visited’ by the user.
Regarding should styles be only applied to the Anchor; well that depends on which type of styles but usually you would not set a single colour on an anchor as it could be harder to determine whether a link has been previously visited or not, etc.
If I declare a style for ‘a’ (without a pseudo-class), does this style apply to all states of the link?
Until you override it with a pseudo class, yes all states will be styled as the “a”.
And will any anchor element styled with a pseudo-class override styles applied only on the anchor element?
Yes
Should styles ever be applied just to the ‘a’ element?
Yes, it is common to apply text-decoration:none; (when you choose) to the “a” and then it is not necessary to repeat that style again on the other states.