Icons alone can save space in case of long(er) labels, but the tradeoff is a memory tax on the user.
Icons can give visual order and harmony to layout, especially in sidenavs. However, in a complex, multi-node nav, we are asking our users to memorize a lot of icons.
See the firebase console as an example:
In the expanded view, I get clear labels. Words like authentication would be hard to add below an icon in the closed state, even at small sizes.
Firebase does provide quick hover tips that show the label, but the tradeoffs are:
I still may have to move up and down the nav to locate what I want.
I get more space in the document area to work with, which is very useful for web applications where the user is editing, manipulating, and creating content, as opposed to viewing/reading.
I lose the category description which helps group the items
Difficulty mapping metaphors
There are many concepts here (26 nodes in this nav!) that don't easily map to physical or cultural metaphors that are widely understood (e.g. pencil for editing), so to come up with meaningful and widely accepted icons is very difficult. Even for this domain (app developers) it's very hard to parse what each means.
Nielsen Norman Group has some thoughts on Icon usability as well.
if you find you need to ponder to come up with an icon for navigation, chances are it’s not going to be easily recognizable or intuitive for users.
Icon labels should be visible at all times, without any interaction from the user. For navigation icons, labels are particularly critical. Don’t rely on hover to reveal text labels: not only does it increase the interaction cost, but it also fails to translate well on touch devices.