This is one instance where non-standard analysis helps understanding. In crude words, you work with infinitesimals, and standardize results (with the operator $\operatorname{st}$) to "real" objects.
Indeed, this goes back to basics, as Leibniz is one of the Godfathers of infinitesimals. Basically, the formula is similar to that of the binomial theorem, and a little investment, stuff can be cast to polynomial-like calculus. Here, this goes like this (only giving a sketch) for the first level:
$$\frac{d(fg)}{dx}=\operatorname{st}\left(\frac{(f + \mathrm df)(g + \mathrm dg) - fg}{\mathrm dx}\right) = \operatorname{st}\left(\frac{fg + f \cdot \mathrm dg + g \cdot \mathrm df + \mathrm dg \cdot \mathrm df -fg}{\mathrm dx}\right) ={f}\frac{dg}{dx} + {g}\frac{df}{dx}\,.$$
The idea is that standardization simplifies quantities. From that, you can apply induction and known results on polynomials.