Have you ever hit alt + backspace while in a zsh session, intending to delete just the last part of a path, or a word, or an identifier, but ended up deleting far more than that?

This is probably because you are using the default value for $WORDCHARS.

The default value for $WORDCHARS is

*?_-.[]~=/&;!#$%^(){}<>

i.e. pretty much everything and the kitchen sink. Usually, therefore, you will want to remove characters which you don’t want to be considered parts of words