I am asked to prove
If $0 \leq X \ {\color{blue} {\leq C}}$ (i.e. bounded) and $Y = EX\mid G$, then $E(X-Y)Y = 0$.
I managed to prove the statement, since $$E(X-Y)Y = E[E[(X-Y)Y\mid G]] = E[YE[X-Y\mid G]] = E[Y(EX\mid G - Y)] = 0.$$ Here I used the law of iterated expectation, taking out what is known and the definition of $Y$. Here is where my question comes in though: why is boundedness necessary? Am I missing something?
Your argument works fine as long as $EX^{2}<\infty$. It is not enough to assume that $E|X|<\infty$ because even though $Y$ is well defined $EXY$ may not exist. $0 \leq X \leq C$ is too strong an assumption.