確かにOが2つあり、そのように考えられる気持ちも分かります。しかし酸化数の計算ではO2まとめて酸化数が-4というのではなく、酸化数-2のOが2つと考えます。酸化数-2のOが2つあるのでCの酸化数は+4です。
おっしゃる通り、化合物である時(H2OやCO2)にはOの酸化数は-2になることが多いです。しかしH2O2などではOの酸化数は-1です。酸化数を考える時には原則となるルールと、それぞれの元素についてのルールがあります。それぞれの元素についてのルールは適用される優先度があり、例を挙げると酸素原子が酸化数-2であるというルールよりも水素原子の酸化数が+1であるというルールの方が優先的です。とりあえず化合物のときの酸素の酸化数は-2と考え、H2O2では例外的に酸素の酸化数が-1と覚えてしまっても良いかもしれません。
興味が沸いたら酸化数のルールについて調べてみることをお勧めします。
ということは、OがO2でもO3でも、O?の形で書かれてある化合物の化学式では、全て酸素の酸化数は-2となるのですか?