Wrong solution to a simple equation

The issue we encounter with the problem at hand one might consider as a bug in functionality for solving equations. Solve yields generic solutions, while Reduce yields complete solutions or more properly a complete solution space. An extended discussion of the issue one can find in What is the difference between Reduce and Solve?

Nevertheless Reduce implicitly assumes that the variable is not restricted by the function domain. We need not classify this behavior as a bug, it depends on appropriate restriction of Reduce usage. In a comment above it was observed that Apart[(9 + 12*x + x^2)/(3 + x)] yielding 9 + x - 18/(3 + x) might be reduced with the right hand side 6 - 18/(3 + x) to get 3 + x == 0. So does Reduce while it should not since x == -3 does not belong to the function domain.

Plot[{(9 + 12*x + x^2)/(3 + x), 6 - 18/(3 + x)}, {x, -12, 6}, PlotStyle -> {Thick, Dashed}]

enter image description here

This inconsistent behavior might be eliminated by an appropriate use of FunctionDomain e.g. (by default the function domain is considered as a subset of Reals, and so we use Complexes to avoid any doubts)

Reduce[(9 + 12*x + x^2)/(3 + x) == 6 - 18/(3 + x) && 
        FunctionDomain[(9 + 12*x + x^2)/(3 + x) - (6 - 18/(3 + x)), x, Complexes],
        x]
False