Gnabry was an extremely highly rated talent in Germany when he moved to Arsenal (a lot of top clubs in europe were interested in him at that time) and in his early time there it looked like his career would go as expected (early promising debut for Arsenal etc). It was injuries that derailed his career and any injury in the critical age of 18-21 is poison for the development of a player. Most talents don't recover from such a period or will at least never fulfill their potential but Gnabry was obviously able to find back on track.
The thing is a lot of people just know the West Brom Gnabry or the one who "wasn't good enough for Arsenal", they aren't aware that Gnabry was always rated as exceptional talent in his youth days. So it's not like Gnabry suddenly turned into a great player, he is "just" making use of the potential that was always there.
Compare that to Sane who was not even rated as a very promising youth player until he was 17, 18 years old, he came pretty much out of nowhere at Schalke and yet people perceive him as "obvious" world class talent.