結果補語 fuses any outcome to the verb (看懂 = read-and-understood). V完 is the one outcome that is exhaustion: the act ran out, nothing of it remains. 完 names finishing-through, not just some result.
了1 says the act was realized and bounded (我吃了 = I ate). V完 says the act was carried to its end (我吃完 = I ate it all up, finished). One reports the act happened; the other reports it reached completion.
了2 at the clause-end announces a new state now holds (it's gotten cold). V完 sits on the verb and reports the act run to its finish. One marks a changed situation, the other a completed action.
putting the object before 完: ✗ 他買菜完 → 他買完菜
using 完 on an act that cannot run out: ✗ 我喜歡完他 → 我喜歡他 (a state, not a finishable act)
reading 完 as past tense rather than completion: ✗ 昨天我看完 (as 'I read it yesterday') → 我看完了 (I finished reading it)
English speakers reach for 完 to translate the past tense of any verb. 完 is not tense; it reports an act taken all the way through to its end, and only on verbs that can finish.