Not sure about the smileys, but the functional icons are pretty neat, thanks for sharing.
Slightly OT, but the codepen highlighting of the various steps taken is incredibly intuitive, and does a great job of visualising how these icons are built up.
However, it does highlight (for me personally), the abuse of the before and after pseudo elements; Essentially it is giving you three layers, great. Want 4, add another sub-element in your html (<i>) and you get three more.
Whilst a neat trick, how this is better than having a contained icon in say SVG?