Questo dipende davvero da ogni singolo sviluppatore (o proprietario di app, o program manager).
In gran parte la scelta è fatta guardando al numero di persone che ancora usano il vecchio sistema operativo, contro il numero di persone che stanno usando il vecchio sistema operativo. Qualunque cosa venga resa più difficile perché un vecchio sistema operativo ha ancora bisogno di essere testato, supportato, e a volte più percorsi di codice devono essere fatti.
Quindi supportare iOS 10 per esempio rende leggermente più difficile supportare l'iPhone X, XS, XR, XS Max perché tutti richiedono il layout all'interno di un'area sicura, e iOS 10 non sapeva cosa fosse un'area sicura.
Quindi qualsiasi codice che deve dire per esempio "metti questo pulsante 10px sopra il fondo dell'area sicura" deve essere scritto come "se questo è iOS 11 o più recente metti questo pulsante 10px sopra il fondo dell'area sicura, altrimenti mettilo semplicemente 10px sopra il fondo dello schermo"
Non è difficile (è letteralmente una singola istruzione if e due vincoli di layout molto simili), ma se dimenticate di testare la vostra app andrà in crash su iOS 10 (o inferiore) e funzionerà perfettamente su iOS 11 (e superiore). Non andrà nemmeno in crash a meno che non vi capiti di arrivare a quella parte dell'app con la parte "smemorata".
La parte difficile è che questa non è l'unica cosa che potreste voler usare da iOS 11 (o iOS 12), e dovete ricordarvela per ognuna di esse... pensate alla morte per 1000 tagli di carta. (anche alcune cose sono più difficili di questa)
Così da una parte avete costi di test extra, costi di programmazione extra, più lenti a distribuire nuove caratteristiche...e dall'altra parte avete un certo numero di utenti. Forse sono clienti (pagano per l'app, o per le caratteristiche dell'app), o forse la vostra app fa soldi dalla pubblicità. In entrambi i casi si può probabilmente capire quanti soldi si fanno da ciascuno degli utenti del vecchio sistema operativo. Moltiplicatelo per il numero di tali clienti... e poi vedete se è al di sopra o al di sotto dei costi extra di programmazione e test, e una stima dei soldi che perdete per essere più lenti a distribuire nuove funzionalità rispetto a quelli che avreste se lasciaste perdere tutto quel lavoro extra.
La maggior parte dei posti non sono così metodici, fanno lo stesso tipo di cose per istinto.
Il risultato è simile però, le app che fanno un sacco di soldi per utente e hanno un maggior numero di utenti di vecchie versioni di iOS tenderanno a tenere le vecchie versioni di iOS più a lungo. Le app che guadagnano molto poco per utente e hanno un numero minore di utenti su vecchie versioni abbandoneranno le vecchie versioni più velocemente.