Hmm, 3904 probably predates PBSS style optimizations...
A BJT is a BJT is a BJT; all obey the basic rules on hFE and transconductance. The only differences are optimizations for certain features (like speed, saturation, fT, SOA..), and how the part is characterized in testing. There might be no difference at all between [assortment of 2Nxxxx parts], except that 2N3904 is characterized for general purpose and switching use, 2N5088 for noise, 2N2369 for switching, etc.
Some manufacturers (e.g., ON Semi) go ahead and measure everything, but this should not be taken as an endorsement of other manufacturers' parts under the same numbering, because anything that meets the JEDEC 2N3904 (and such) spec can be sold as such, and those specs are quite basic. Anything above and beyond, is manufacturer specific.
Likewise, there is very little variation in JFET characteristics, the overall V/I characteristics being nearly identical, except for two axes (pinchoff voltage and channel width), and various small optimizations (mainly for capacitance, hence BF862 being better than MMBT4392). The primary difference then is characterization, with some being very gross (2N3819's 10:1 Idss spread), some selected for switching (Rds(on), like PN4392), some for RF performance (like 2N5486), and some for AF or general low noise (LSK389, etc.). And here again, you'll see real differences -- parts that are not qualified for noise, may sometimes be unexpectedly quite noisy.
Tim