Escolher um componente eletrônico em particular e chamar que o "pão com manteiga" é bobagem, assim como todas essas declarações "mais importantes". Por exemplo, conte resistores em circuitos analógicos e tenho certeza de que eles superam os opamps por uma ampla margem.
Além disso, as coisas mudam. Houve um tempo em que os tubos de vácuo eram o componente bobo "mais importante" ou "pão com manteiga" dos eletrônicos analógicos, depois o transistor.
Você nunca precisa usar um opamp, mas pode ser a maneira mais eficiente de implementar um circuito para uma especificação específica. Afinal, os opamps são feitos de transistores, portanto, é possível usar vários transistores (com alguns outros componentes).
A atração dos opamps é que eles incorporam um bloco de construção comum e facilmente utilizado. Com a magia dos circuitos integrados, esses blocos de construção podem ter o tamanho e o custo de transistores únicos às vezes. Qualquer opamp pode ser um exagero para qualquer aplicação em particular, mas a grande alavancagem dos circuitos integrados produzidos em massa permite que sejam baratos e pequenos o suficiente para que seja geralmente mais barato e menor usar um opamp inteiro quando apenas alguns de seus transistores realmente ser necessário.
Para usar sua analogia com um loop FOR em uma linguagem de programação, você realmente não precisa usar essa construção. Você pode inicializar, incrementar e verificar uma variável com código explícito. Às vezes, você faz isso quando deseja fazer coisas especiais e a construção FOR enlatada é muito rígida. No entanto, na maioria das vezes é mais conveniente e menos propenso a erros usar a construção FOR para loops. Assim como nos opamps, você não pode usar todos os recursos dessa construção enlatada de alto nível em cada caso, mas sua simplicidade faz com que valha a pena. Por exemplo, a maioria dos idiomas permite que o incremento seja diferente de 1, mas você provavelmente só usa isso raramente.
Diferentemente da construção FOR, não existe um compilador que otimize um opamp em um circuito discreto para apenas os recursos necessários nessa instância. No entanto, a enorme vantagem da produção de circuitos integrados em volume reduz esses recursos para muito menos do que o equivalente a algumas instruções extras em um loop FOR. Pense nos opamps mais como sendo um loop FOR com todos os recursos implementados no conjunto de instruções, que usa as mesmas instruções para executar se todos os seus recursos são usados ou não, e menos instruções do que você teria que usar caso contrário, mesmo nos casos simples.
Os opamps são um monte de transistores reunidos para apresentar um bloco de construção "agradável" e disponibilizados pelo custo de apenas um ou alguns desses transistores. Isso não apenas economiza tempo no projeto para lidar com toda a polarização dos transistores e similares, mas as técnicas de fabricação podem ser usadas para garantir uma boa correspondência entre os transistores e que permitem medir e aparar parâmetros mais próximos do ideal. Por exemplo, você pode fazer um front end diferencial com dois transistores, mas reduzir a tensão de entrada para apenas alguns mV não é trivial.
Toda a engenharia é baseada no uso de blocos de construção disponíveis em algum momento, e os opamps são um bloco de construção útil para circuitos analógicos. Isso realmente não é diferente do que usar transistores. Muito processamento foi feito para refinar o silício, dopá-lo, cortá-lo, empacotá-lo e testá-lo, que de certa forma damos como um transistor discreto. Os opamps são mais integrados que os transistores individuais, mas ainda são bastante "baixos" no esquema das coisas.
De volta à analogia do software, é o mesmo que usar sub-rotinas existentes para continuar escrevendo o código para seu aplicativo em particular. No caso de chamadas do SO, você não tem a opção de usá-las. Seria como refinar seu próprio silício. Opamps são mais como chamadas convenientes que você pode escrever sozinho, mas fazer isso seria tolo na maioria dos casos. Por exemplo, você provavelmente teve que converter um número inteiro em uma seqüência decimal ASCII várias vezes, mas quantas vezes você escreveu seu próprio código para isso? Você provavelmente usou chamadas de biblioteca de tempo de execução para isso, ou mesmo as chamou implicitamente através de construções de nível superior disponíveis no seu idioma (como printf em C).
O opamp ideal possui impedância de entrada infinita, deslocamento 0, impedância de saída 0, largura de banda infinita e custa $ 0. Nenhum opamp é ideal, e esses e outros parâmetros têm importância relativa diferente em projetos diferentes. É por isso que existem tantos opamps. Cada um é otimizado para um conjunto diferente de trocas. Por exemplo, às vezes você ouve que o LM324 é um opamp "ruim". Isto não é verdade, de forma alguma. É um opamp superlativo quando o preço é uma alta prioridade. Quando alguns desvios de mV, ganho de 1 MHz * largura de banda etc. são bons o suficiente, tudo o resto é apenas lixo caro demais.