Hola,
La diferencia fundamental es "semántica". Mientras que la etiqueta <b> es meramente de representación visual: negrita. La etiqueta strong, significa que ese texto debe ir destacado, porque es importante. Por eso en las últimas especificaciones de la
w3.org la etiqueta <b> ha sido declarada obsoleta.
La etiqueta strong es semántica, por eso unos navegadores la implementan visualmente de una manera y otros de otra.
El problema de la diferente implementación en distintos navegadores se soluciona mediante CSS.
La diferencia es que si usas <b> le estás diciendo al navegador, esto ponlo en negrita.
Y si usas <strong> y CSS le dices al navegador, esto es importante. Todo lo que sea importante lo quiero en negrita, o en verde, o más grande, o como tu quieras, ese es precisamente el poder de la semántica en conjunción con las hojas de estilo.
Salu2