To, že se obdoba dá napsat v C (C++) jsem si myslel už minule u Option.
Ale největší změna tam je, že už překladač (v compile time) v případě Option ohlídá, zda po návratu kontrolujeme všechny možné enum stavy (None v případě Option). Předpokládám (pozor, jen odhad, v článku jsem nenašel explicitní upozornění), že pro Result platí totéž.
Takže zpět k dotazu "Má smysl použití nečeho jako typ Result i v jiných jazycích". Dle mého názoru spíše nemá, pokud by byl použit násilně. Pokud nás neohlídá už compiler, že zpracováváme správnou návratovou hodnotu, začíná násilné použití ztrácet smysl. Stejně by došlo k exception, při chybném užití. Pak už je jedno, zda kontroluji na chybný stav objekt 9na nějako naší definovanou err hodnotu (třeba i nuly, ale i jinou), nebo zda kontroluji pointer na err na NULL.
P.S.: Ten příklad, přepsaný do C, mi připadá špatně. Správně by mělo být struct na bool (zda chyba či platný) a enum. A v enum vyjmenovat ty dvě návratové varianty (error a platná). Error přece nemusí být jen char* (kde jeho NULL asi bereš jako flag není-chyba), opravdu obecná definice potřebuje někde vracet informaci, zde se vrací platný či chybový stav.