Il problema non è spesso il numero totale di indirizzi, ma il numero di subnet, ed il numero di indirizzi per subnet. Più bit si usano per le subnet, meno indirizzi per subnet.
In ambienti complessi gli IP vanno via rapidamente, fra host (magari con più interfacce ed IP), macchine virtuali, container, device vari (anche il terminale dal badge ha un IP), dispositivi di rete, dispositivi di gestione, ecc. ecc. Per motivi di gestione, efficienza, sicurezza, ecc. è normale dividere reti complesse in più subnet - e alcune possono contenere centinaia se non migliaia di host, e in ogni subnet di solito viene lasciato un po' di spazio libero per future estensioni.
Poi c'è anche chi ha siti multipli e link dedicati o VPN site-to-site, se si usano gli stessi indirizzi in ogni sito poi diventa impossibile comunicare, e si può fare route aggregation più efficacemente usando le subnet in maniera accorta.
Volendo ovviamente si possono mischiare anche le tre reti - spesso succede a chi ha cominciato con la 192 e poi si accorge che non gli basta più.
Sarebbe forse bastata la sola 10.0.0.0/8, ma ne esistono 3 per motivi storici. Fino al 1993 IPv4 era progettato per usare classi fisse di indirizzi (le A/B/C, ancora a volte usate incorrettamente), ed erano stati creati gruppi di indirizzi privati corrispondenti. Poi nel 1993 è stato introdotto il Classless Inter-Domain Routing (CIDR) per evitare che gli indirizzi IPv4 si esaurissero rapidamente (senza, staremmo già usando tutti IPv6), che ha introdotto le "subnet mask" a dimensione variabile.
In IPv6 il CIDR è di default, ed è stato allocato un solo spazio suddivisibile in 240 network separati ognuno con 64K subnet da 264 indirizzi. Dovrebbe bastare anche per Amazon AWS... almeno per un po'.