Equivocation of Equality in Proofs Concerning Little-o The following definition comes from chapter 7 section 9 of Apostol's Calculus.

Assume that $g(x) \neq 0$ for all $x \neq a$ in some interval containing $a$. The notation $$f(x) = o(g(x) ~~~\mbox{ as } x \to a$$ means that $$\lim_{x \to a} \frac{f(x)}{g(x)} = 0$$

It seems that the equal sign used in "$f(x) = o(g(x) ~~~\mbox{ as } x \to a$ is not being used in its usual sense, whereas in $\lim_{x \to a} \frac{f(x)}{g(x)} = 0$ it is. Here is theorem 7.8 in Apostol's book:

As $x \to a$, we have the following: 
  $$\mbox{(a)}~~~~~ o(g(x)) \pm o(g(x)) = o(g(x))$$
  $$\mbox{(b)}~~~~~ o(cg(x)) = o(g(x))$$ 
  $$\mbox{(c)}~~~~~ f(x) o(g(x)) = o(f(x) g(x))$$ 
  $$\mbox{(d)}~~~~~ o(o(g(x)) = o(g(x))$$ 
  $$\mbox{(e)}~~~~~ \frac{1}{1+g(x)} = 1 - g(x) + o(g(x)) ~~~\mbox{ if } g(x) \to 0 \mbox{ as } x \to a$$

Apostol gives a proof of (a) and (e). Since he omitted the proofs, I thought it would be a good idea to prove them.  Here are two 'proofs' of part (c), each of which has its own issue, as you will see. First, $f(x) o(g(x)) = o(f(x) g(x))$ as $x \to a$ iff $\lim_{x \to a} \frac{f(x) o(g(x))}{f(x)g(x)} = \lim_{x \to a} \frac{o(g(x))}{g(x)} = 0$ iff $o(g(x)) = o(g(x))$ as $x \to a$. Now, someone might quickly say "Aha! We have arrived at a tautology, so what we began with is true, which completes the proof." But this would seem to treat the sign "$=$" as it first occurs in the definition of little-o as an ordinary equal sign, committing a certain equivocation. Perhaps I am wrong; I am not sure how to deal with this though. 
As for the second, let $h(x) = f(x) o(g(x))$, where equality is being used in its usual sense. Then $\frac{h(x)}{f(x)} = o(g(x))$, which means that $lim_{x \to a} \frac{h(x)/f(x)}{g(x)} = 0$ or $\lim_{x \to a} \frac{h(x)}{f(x)g(x)}=0$. This means that $h(x) = o(f(x)g(x))$ as $x \to a$ or $f(x) o(g(x)) = o(f(x)g(x))$ as $x \to a$. 
First, notice that I assumed $f(x) \neq 0$ on some neighborhood of $a$. I don't believe this turns out to be an issue, however, since if $f(x)$ could be $0$ on an interval of $a$, the ratio wouldn't be defined and so we couldn't take its limit. The more fundamental issue is that equivocated between ordinary equality and the sort of equality that occurs in the first part of little-o's definition. 
How do I get around this issue? On a seconding reading, believe Apostol commits the same equivocation when he proves parts (a) and (e), but I may be wrong about that. How can we prove the theorem without equivocating, if 
indeed such a thing has been committed? 
EDIT:
On a related note, what I find really unnerving is when little-o appears in limit computations; it is though it were being treated as a function. For example, see this and this
 A: The notation $f(x)=o(g(x))$ is rather misleading until you get used to it. Really $o(g(x))$ is a class of functions, and $f(x)=o(g(x))$ means $f(x)$ is in that class. Some people write $f(x)\in o(g(x))$ to make this clear.
It's less clear what an expression like $f(x)o(g(x))=o(f(x)g(x))$ means. One interpretation is "if $h(x)=o(g(x))$ then $f(x)h(x)=o(f(x)g(x))$", and I think this is often the intended interpretation in mathematical writing, where you might have a chain of reasoning like $n^{-n}n!=n^{-n}o(n^n)=o(1)$. This interpretation might be written out more unambiguously as $f(x)o(g(x))\subset o(f(x)g(x))$; here by $f(x)A$, where $A$ is a set of functions, we mean $\{f(x)h(x)\mid h(x)\in A\}$.
However, there is another possibility for the intended meaning in this context, which is that the class of functions described by $f(x)o(g(x))$ is the same as that described by $o(f(x)g(x))$, i.e. an actual equality of classes.
In any case, the way to go about proving it is to take a generic function $h(x)\in o(g(x))$, and use the fact that $\lim_{x\to a} \frac{h(x)}{g(x)}=0$ to deduce that $\lim_{x\to a} \frac{f(x)h(x)}{f(x)g(x)}=0$ (and, for the second interpretation, you'd then need to do the same thing for a generic function which is $o(f(x)g(x))$). You can't directly look at limits of expressions with $o(g(x))$ in, because these expressions describe classes of functions, not specific functions.
A: This is a common abuse of notation (see here). When one writes $f(x) = o(g(x)) ~~\mbox{ as } ~~x \to a$, what is meant is that $f$ belongs to the class of functions which are dominated by $g$ asymptotically. In other words, a more correct way of writing this property would be to write $f(x)\in o_{a}(g(x))$, where $o_{a}(g(x))$ is the class of all functions $h$ which satisfy $$\lim_{x \to a} \frac{h(x)}{g(x)} = 0.$$ Basically, when we write something like $f(x)=r(x)+o(g(x))~~\mbox{ as } ~~x \to a$, we mean that there is some element of $o_{a}(g(x))$ which can be substituted in place of $o(g(x))$ to make the equation valid. We do not care what this function is exactly, we only care about it's limiting behaviour with respect to $a$. This is why the abuse of notation persists.
With this version in mind, it is straightforward to prove (a)-(e).
(a) says that $o_{a}(g(x))$ is closed under addition and subtraction. (b) says that $o_{a}(g(x))$ is closed under scalar multiplication. (c) says that $f(x)\cdot h(x)\in o_{a}(f(x)g(x))$ holds for every $h\in o_{a}(g(x))$, where - as you mention - we should assume that $f$ is non-zero on some interval containing $a$. (d) is a bit trickier, it says that for any $h\in o_{a}(g(x))$, we have that $o_{a}(h(x))\subseteq o_{a}(g(x))$. Finally, (e) says that $$\frac{1}{1+g(x)} = 1 - g(x) + h(x)$$ for some $h\in o_{a}(g(x))$.
