Root certificates are normally self-signed. What is the reason behind that convention? I mean, one must trust the root certificate in a non cryptographic way anyhow.
ACCEPTED]
Among the reason why root public keys are often expressed as a self-signed certificate are:
However, not all implicitly trusted or root public keys exist as a self-signed certificate, much less exist only in this form. For example, the public key of the European Root Certification Authority of the Digital Tachograph system [1] is not available as a self-signed certificate (which could be made), for good reasons:
[CSM_007] At European level, a single European key pair (EUR.SK and EUR.PK) shall be generated. The European private key shall be used to certify the Member States public keys. Records of all certified keys shall be kept. These tasks shall be handled by a European certification authority, under the authority and responsibility of the European Commission.
There is no need for a trust anchor to be distributed as a certificate at all, let alone a self-signed one. The certificate path validation requirements in RFC5280 make this reasonably clear; it even says in ยง6.2:
The path validation algorithm presented in Section 6.1 does not assume that trust anchor information is provided in self-signed certificates
However, a certificate is a standardized format that can contain the information needed about a trust anchor, and which any implementation is obviously going to have to have the ability to parse anyway, so it's a very common way to represent and to distribute trust anchors.