I hate this trend so much. I must say it feels like it
"Breaks" the web. I use Gill Dyslexic[1] on all websites across the internet and I'm tired of having to put in exceptions for sites like github. Icons should be images.
Yes, but it still has a meaning, and it is not "icon". I think you can be pragmatic here and use <i>, since it to my knowledge doesn't cause any real world problem, but it's worth exploring other options.
The src is the data uri of a transparent gif. Screen readers will hear the alt text if you supply one. This will not work with font icons (img can't have ::before or ::after) but it should work fine for sprites or data uris in the CSS.