I don't know why this was downvoted. Sea level does indeed suck as a baseline.
Traditional vertical datums like NAVD88 get their baseline zero elevation from an averaging of mean sea level at a small number (~5) of tidal stations around the area of interest.
The reason why multiple stations are used is that mean sea level is different from place to place. This is because of ocean currents and (I think though I can't say for certain) different levels of gravity at different points on earth's surface.
This is most clearly demonstrated with chart datum, which is a local elevation datum particular to a single maritime chart (eg a single harbor). Chart datum is the mean low tide for the area in question (useful to know if you don't want your craft to run aground...). The point of mentioning this is that: there are different chart datums along a single seaboard. Mean sea level is local.
The current practice is to use geoids which are based on the force of gravity. Einstein described geoids as surfaces on which clocks run at a constant rate. This is analogous to mean sea level on a waterworld in free space, eg sea level without the confounding factors of currents, weather, climate, or astronomical objects.