What is the difference between Email and Mailing?
The main difference is that the mails are sent "synchronously", when you save it, that sets a limit of max 50 emails, whilst the mailings are sent in the background via a cron (so you don't get any timeout and can send it to millions) 

The BAO/DAO for emails are into CRM/Core

if you have installed civi from buildkit (or from git) you have a xml/schema folder that defines the structure of the tables and where the DAO are (it's from there it's generated). I find it more convenient to search than the CRM code