Everything I've read about this suggesgts that running watches use the barometric sensor inside the watch to detect elevation changes. So I have two main things to say about this.
First, it seems incomprehensible to me that a sensor that tiny can detect the pressure changes involved in changing elevation by a few feet. But okay, if it can it can. But what about hyperlocal variations in pressure? For example, anyone who has run in a forest knows you sometimes run through spots where the air is much cooler for whatever reason, and there, the pressure is likely to be higher - how does the watch not register a sudden drop in elevation?
More broadly, there are at least two other ways Garmin could get elevation change: topographical data, and accelerometer data. As far as I know there is detailed topo data for almost everywhere in the world, or at least everywhere in Europe and North America. Why not use it? Re accelerometer data, if accelerometers can sense things as granular as running dynamics, surely they can also sense elevation changes.
I would love to know why Garmin relies solely on barometric pressure for this instead of using all available sources of data (barometric, topo maps, and accelerometer) and then algorithmically interpolating.