No, cross certificates and cross signing are not really different things, and it is true that both intermediate CAs and what we normally call root CAs can be cross-certified.
Your confusion may be due to the fact it's blurry exactly what a root is. There are numerous CAs that want to be roots, that hold themselves out as roots, that publish root certs, that apply to be included in root-cert programs, etc. But each relier, i.e. each of us, ultimately decides which CAs we trust as roots, although most of us simply accept the trust defaults set by browser or system vendors (Microsoft, Apple, Mozilla/Firefox, Sun/Oracle/Java, Goolge/Chrome and Android, etc). Whether a given CA looks like a root can depend on who is looking. For example for a long time GeoTrust had their own published root, but also had cross certs for the same CA (maybe several, I only recall one for sure) from Equifax. Some people or systems trusted the GeoTrust root(s?) and treated them as root CA(s); some didn't, but did trust Equifax, and thereby trusted GeoTrust as subordinate CA(s) under Equifax. So in that situation was GeoTrust a root or not?
A more current -- and complicated -- example is LetsEncrypt. When they started operations they generated their own 'ISRG' root and started applying to have it accepted, but initially they had their two intermediate (subordinate) CAs LetsEncrypt X3 and LetsEncrypt X4 (I'm abbreviating the names for convenience) signed by DST Root X3, an established root, to allow them to start fast without waiting for their own root to be accepted. (Technically they started with intermediates X1 and X2, but those were quickly replaced by X3 and X4 due to a problem I don't remember, like maybe they didn't work with MSIE or something.) Just this year, after about 5 years of effort, they finally got ISRG Root X1 accepted widely enough they could switch to using it; in the meantime they added ISRG Root X2, which AFAICT isn't so widely accepted yet. So now they use this trust structure:
intermediates R3 and R4 are primarily chained (the dark lines) to ISRG Root X1, but they also can be chained (the gray lines) to DST Root X3 if you want
for those (few) systems that don't trust ISRG X1, there is still a cross (also called bridge) cert from DST X3
intermediates E1 and E2 are chained to ISRG X2, which can be a root, but for the (many) systems that don't trust ISRG X2 it is also cross-certified by ISRG X1 (and thus indirectly by DST X3 if needed)
This is complicated by the fact that the DST X3 cert expires in a few weeks (2021-09-30). The standard rules do not say whether chain validation using an expired root cert must or should fail, partly because they don't specify a root cert at all, only certain fields; nearly all software finds it convenient to use a certificate as the data structure for a root (also called anchor) identity and key, but this is not required. So chains using DST X3 may soon become invalid, or they may not, depending on factors most users won't be able to understand, which is not a very good thing.
A root certificate is always self-signed, yes. (This is shown by the self-loop arrows on the LetsEncrypt diagram.) However, a CA that has a root cert may also have a cross cert, or even several, that is/are not self-signed but is/are for a CA which may be labelled, and viewed, as a root CA. Clear as mud?