Myslíte to API Windows, kde to (podle dokumentace) "něco má dělat", ale když to tak není, tak můžu jen dokola zkoumat dokumentaci API a doufat, že jsem něco špatně přečetl? Protože do toho blackboxu za API mi Microsoft neumožní kouknout a pokud je něco jinak "někde uvnitř" za API, tak mám smůlu? Děkuji, nechci. Všude se může stát chyba, ale u opensource projektů se mohu snadno kouknout "za API", kde je něco jinak.
Ano, pokud na takovou API narazíte, musíte se s ní naučit nějakým způsobem žít. Pohybuji se jen v oblastech nízkokúrovňového programování a i tam se za těch 8 let, co se Windows aktivněji zabývám, tyhle případy vyskytly. Naštěstí už snad všechny tyto chyby, o kterých vím, patří do minulosti (tzn. např. se vyskytují na Windows Vista bez instalovaného SP atd.). Nedokumentovaná rozhraní nepočítám, tam si každý, kdo se jich rozhodne použít, musí být vědom nebezpečí změny. Ale samozřejmě se mohou objevit další. Pokud máte nějaký příklad, dejte ho sem, ať se podíváme.
V případě systémové API nevím, do jaké míry by vám pomohlo znát její zdroják. Ano, možná by se vám díky němu podařilo bug obejít. Úprava by problém neřešila, protože stejně musíte zajistit, aby vaše aplikace fungovala pokud možno všude (tzn. i u uživatelů, kteří si třeba nevšimli, že jste kód systémové knihovny, byl-li by opensource, změnil, a tudíž si mají nakopírovat novou verzi). Nemyslím, že uživatelé Windows jsou ochotni takové problémy řešit (na rozdíl od těch druhých). A distribuovat příslušně upravenou systémovou knihovnu s vlastní aplikací moc dobře nejde.
Prozkoumat, jak určitá API funguje, samozřejmě můžete i bez zdrojáku. Pokud tedy nemáte tu smůlu, že se překládá jen na RPC (LPC) do jiného procesu a vyzvednutí výsledku. Nebo protože jste se rozhodl její podobu vyzkoumat v 64bitovém kernelu, který disponuje jistým zabezpečením proti nežádoucím modifikacím, které zároveň trochu snižuje čitelnost.