If I understand you correctly, these are examples that are wrong and they will never be classified as `separable_reduced`. I think you are doing this in response to @asmeurer 's request that you add a test. 

The code you have added already allows all (hopefully) equations in the test suite to pass that really are separable reduced, so the code is tested. We know that the code is necessary because it fails for the two results that you modified. There are an infinite number of ways to fail so I don't see a point in adding two tests that fail *unless* these are examples that are easily mistaken as being `separable_reduced`. If they are then in the `separable_reduced` tests you can add them like

```
eq = sin(x)*cos(f(x)) + cos(x)*sin(f(x))*f(x).diff(x)
raises(ValueError, lambda: dsolve(eq, hint='separable_reduced'))
```

If it's just a shortsighted oversight that added them in the first place, then what you have is fine. Just remove this XFAIL test if I have understood the situation correctly.