Ah, a good analogy then: an op-amp is like a... Python's libraries let's say. Powerful, massive, sometimes buggy, sometimes overengineered, often expensive. The computational expense being memory and speed, though sometimes financial expense as well.
The main downsides to an op-amp are the extra noise (there are some surprisingly low noise op-amps, only not quite as good as single PHEMTs or whatever), bandwidth (in a given range of parts, I suppose) and financial cost.
One example of buggy hardware I've heard of is DSL line drivers. They're spec'd like normal op-amps or buffers, but only work in a narrow part of the (specified!) operating range. Like +/-15V supplies with less than 5V working range, or undocumented latchup behaviors. Analogous to buggy, poorly written, poorly documented libraries.
Tim