From studies investigating the differences in evolutionary rates between genes, gene compactness and gene expression level have been identified as important determinants of gene-level protein evolutionary rate, as represented by nonsynonymous to synonymous substitution rate (d(N)/d(S)) ratio. However, the causes of exon-level variances in d(N)/d(S) are less understood. Here, we use principal component regression to examine to what extent 13 exon features explain the variance in d(N), d(S), and the d(N)/d(S) ratio of human-rhesus macaque or human-mouse orthologous exons. The exon features were grouped into six functional categories: expression features, mRNA splicing features, structural-functional features, compactness features, exon duplicability, and other features, including G + C content and exon length. Although expression features are important for determining d(N) and d(N)/d(S) between exons of different genes, structural-functional features and splicing features explained more of the variance for exons of the same genes. Furthermore, we show that compactness features can explain only a relatively small percentage of variance in exon-level d(N) or d(N)/d(S) in either between-gene or within-gene comparison. By contrast, d(S) yielded inconsistent results in the human-mouse comparison and the human-rhesus macaque comparison. This inconsistency may suggest rapid evolutionary changes of the mutation landscape in mammals. Our results suggest that between-gene and within-gene variation in d(N)/d(S) (and d(N)) are driven by different evolutionary forces and that the role of mRNA splicing in causing the variation in evolutionary rates of coding sequences may be underappreciated.