I would agree with that – it's a convention which the FontAwesome project uses for reasons I haven't looked into (I'm assuming not wanting to type 6 more characters).
I use <span> on all of my projects.
Yes but shouldn't a <span> also always have content? Am I missing something here?
There's nothing that requires it to have content, no. Absent other styles, an empty <span> would be invisible and have no effect though.
Using it without text strikes me as a hack, and one that is hostile to usability, among other problems. I understand why it would work, but it's abusing the technology as far as I can tell.
Since I've seen this in at least two comments now, can somebody explain to me why it's not considered an anti-pattern in 2016?
[edit: formatting]