> Proč nepoužít nějaký rozumný parser příkazové řádky, který automaticky řeší spoustu věcí na jednom místě?
Protože ten formát příkazové řádky je jednoduchoučký. Nejsou tam žádné volitelné inty a floaty, žádné pojmenované parametry, jen pár stringů. Jeden z nich je občas url. U něčeho takového by kontrola výsledků toho parseru vyšla +- složitá jako tohle.
> Proč nepoužít namísto těch ifů (kde na první pohled nikdo neví, jestli jsou si rovny / jsou exkluzivní nebo ne), nějaký switch?
Protože C neumí switch podle stringu. Takže ty ify tam budou muset být vždycky, navrch k tomu switchi.
> pokud to nelze rozumně jinak.
Jakoukoliv funkci jde vždycky seknout na půl. A pod to nenápadné slůvko "rozumně" se schová celá tahle naše debata.
> Uznávám, že v jazyce, který nemá moduly, je vnímáno jako opruz, když se mají funkce vkládat jinam.
Vytáhnout funkci do jiného souboru je i v C brnkačka. Tohle není těžké. Jen nedává smysl rozhazovat těsně svázané funkce do víc souborů. Protože ke skákání mezi funkcema přibude ještě overhead s přepínáním mezi soubory.