Byte-code is not generally compatible across major releases of Emacs, and packages may have changed in that time. Best throw a more helpful error than leave users to deal with the obscure errors that this can cause.