Votre exemple fonctionne comme prévu dans Google Chrome, Safari (Windows) et IE8. Le texte sort de la zone 150px dans Firefox 3 et Opera 9.5.
De plus, ­
ne fonctionnera pas pour votre exemple, car il fonctionnera non plus :
fonctionne lors de la rupture de mots mais lorsqu'il n'y a pas de rupture de mots, n'affiche aucun trait d'union, ou
fonctionne lorsqu'il n'y a pas de rupture de mots, mais affiche deux traits d'union lors de la rupture de mots car il ajoute un trait d'union sur une pause.