完 reports the act was carried through to its finish; the stock may still remain (吃完一個 = finished eating one, more on the plate). 光 reports the stock ran dry: 吃光 = eaten down to none left. Completion of the act vs exhaustion of the supply.
掉 names one thing fallen away — removed, disposed of (賣掉那雙鞋 = sold off that pair). 光 names a quantity drained to zero — none of it left (賣光 = sold out, shelf bare). A thing gone vs a supply emptied.
結果補語 fuses any outcome to the verb (看懂 read-and-understood). 光 is the one outcome that is total exhaustion: scraped bare, nothing remaining.
putting the object before 光: ✗ 我用錢光 → 我用光了錢 / 把錢用光了 (光 fuses to the verb; the object follows)
using 光 when stock remains: ✗ 我吃光了一塊 (one piece, more left) → 我吃完了一塊 (finished that piece)
using 光 on an act with no supply to drain: ✗ 我看光了書 (for finished reading) → 我看完了書 (reading leaves the book; nothing was used up)
English marks this with a particle after the verb — eat up, sell out, run out of, use up. Chinese fixes 光 in that same slot; the sense is the supply hit zero, not merely that the action ended.