I had to work with some series expansions lately, and at some point I realised that something was becoming inconsistent at some point. It seems that applying `Factor` broke my series expansions. Here's a minimal example extracted from my computations.

Consider the following expression

    test =   Sqrt[1/(1 - x)] (Sqrt[1/(1 - x)] + 1) + 1;

Now look at those series expansions of `test` around `x=1`:

    ser1 = Series[test // Factor, {x, 1, -1}]
    ser2 = Series[test, {x, 1, -1}]

Not only are `ser1` and `ser2` different, but what's worse is that

    ser2 - ser1

gives `1/(x-1) + O(x-1)^0`. At this point I would have expected `O(x-1)^0`, how come `Factor` can break a series expansion so much? Is this sort of behaviour a feature or a bug?

---

The problem seems to be in `ser2`, if one looks at `List@@ser2` one realises that `ser2` is saved as `a0+O(x-1)^2` with `a0` containing `x`, this seems to be the root of all evil.

Interestingly, if one alters `test` to

    test =   1/Sqrt[(1 - x)] (1/Sqrt[(1 - x)] + 1) + 1;

which is really not much of a change, one obtains a different result. Given this instability, I don't know how I should trust the series expansions at all.

---
Here's a similar, but more subtle computation, which leads to two different results. Let's add `1/(1-x)` to `test`

    test =  1/(1 - x) + 1/Sqrt[1 - x] (1/Sqrt[1 - x] + 1) + 1;
    ser1 = Series[test // Factor, {x, 1, -1}];
    ser2 = Series[test, {x, 1, -1}];

and compute

    Limit[(1 - x) ser1, x -> 1] (* = 2 *)
    Limit[(1 - x) ser2, x -> 1] (* = 1 *)

In a realistic scenario `test` would be much more complicated, and I wouldn't compute both `ser1` and `ser2` and then compare, but just one of them. So there's a 50/50 chance that I'd obtain a wrong result without being aware of it.

---

Mathematica Version : 11.1 .0 .0

Platform : Mac OS X x86 (32-bit, 64-bit kernel)