So it is known that $\mathcal{O}(fg)=f\cdot \mathcal{O}(g)$. But what if $f$ is always negative, say a constant? Then $h=\mathcal{O}(fg)$ implies there exist $C>0, x_0$ such that $|h(x)|\le Cg(x)f(x)$ for $x\ge x_0$, and $g(x)f(x)$ are strictly positive for $x\ge x_0$. But this means that, in this case, $g(x)$ is always negative for $x\ge x_0$, since $f$ is always negative. Now what this means is that if some function is $\mathcal{O}(g)$ then $g$ must take positive values too (by definition of how big-oh works), otherwise there can't be $\mathcal{O}(g)$. Thus if $h=f\mathcal{O}(g)$ then $|h(x)|\le f(x)\cdot D\cdot g(x)$ with $D>0$ and $g>0$ for these values of $x$, so that $|h(x)|$ is negative, which cannot be.
So what is it that I'm misunderstanding here?
$\mathcal{O}(g)$ only makes sense if $g(x)$ is strictly positive for sufficiently large $x$, and similarly $\mathcal{O}(fg)$ only makes sense if $f(x)g(x)$ is positive for sufficiently large $x$. So the statement $f\mathcal{O}(g)=\mathcal{O}(fg)$ only makes sense if both $f(x)$ and $g(x)$ are strictly positive for sufficiently large $x$.