You have three problems:
- Matching. Thermally, and by geometry. You can select transistors with same Vbe at the same current (not hFE, that basically doesn't matter -- in fact all the PNPs in that design were hFE of 5-10), but you can't guarantee those Vbe's will stay matched as different transistors heat up due to current flow.
- Geometry. Many of those transistors had different sizes. A typical example is a bandgap voltage reference (which wasn't used here, I think), where a ratio of transistor is used to create a stable voltage output. Now, the application here is mainly about having transistors sized appropriately for their place in the amplifier: you use small widths for the input transistors, and small bias currents; and larger ones towards the output. This isn't as big of a deal, because you can operate a given transistor at much lower currents than its size suggests (e.g., a 2N4401 is rated for 600mA, but it works just fine at 10uA), albeit with way more capacitance than you would have otherwise (which slows down the amplifier a whole lot).
- Ratings. Most of those transistors are pretty normal (the NPNs are something like Vceo = 40V, Vebo = 7V, hFE ~ 100), but the PNPs are actually an ingenious hack. On the upside, Vebo = Vceo, which means using PNPs for the input stage gets you the full input voltage range (cool!). In short, 2N3906s would only give you a ~15V input range on this circuit, not the full 30 or 40V.
For sure, there's a lot that can be simplified, at the expense of supply voltage range, distortion, and such. The typical discrete op-amp circuit has:
- Input diff pair: 2 transistors
- Volt amp stage (VAS): 1 transistor
- Follower: 2 transistors (diode biased, no current limiting)
This can be enhanced with current sources in various places:
- Input diff pair "tail": increases gain and input voltage range, reduces DC offset
- Diff pair collector load (current mirror): increases gain significantly
- VAS load: increases gain, output voltage range, output bias stability
Further, there are options for biasing (Vbe multiplier to set output stage bias to something other than a multiple of Vbe's from stacking diodes), current limiting, and alternative topologies to improve speed, input and output voltage ranges, and so on.
Spotting which options they used in the above circuit is a fun exercise for the student...
Tim