There is no universal, consensus whole-exome annotation. There are, however, various platforms and versions of whole-exome library kits, with their accompanying annotations. These kit-specific annotations are made using a particular version of the human genome and annotation. You need to subset your whole-genome calls against the particular annotation of the kit in question, which means you either have to map against the same genome version, or you have to convert (e.g., with liftOver) the coordinates between different genome builds.
Sometimes, the upstream genome annotation is updated but kit manufacturers often lag behind, keeping an outdated annotation - this could explain the intron / coding discrepancies you observed.