This was a performance decision. Cross-signing the root instead of the intermediate would mean that web servers would have to include both the root and the intermediate in the chain they serve, rather than just the intermediate. That would add a full packet to each handshake.
Re:Let's Encrypt is Trusted
by Natanael_L on Tuesday October 20, 2015 @04:53AM
(#10418120)
Why are there multiple intermediate certs? I don't know the details of the standard procedure.
With a cross signed root, clients with only the IdenTrust root will validate the cert, and clients with only the LetsEncrypt root can validate the cert.
With a cross signed intermediate, the server has to guess which root the client has and serve the correct path, there's a TLS extension to indicate roots the client supports, but nothing actually uses it, so I don't know how the server is going to guess (other than to assume no one has the LetsEncrypt root, since it's new).
[1] but some clients are dumb and won't validate successfully when they reach a root they know :/ Most browsers will though.