You will see that y=1/x happens exactly where the square root is zero, on the edge of the set of the admissible pairs (x,y). The solution y=1/x is the envelope of the family of straight line solutions that are given by Mathematica:
I know, that the solutions Mathematica gives are indeed solutions, but I also know, that it is not a complete set of solutions. My question is: Is there any other solution Mathematica missed, or y[x]=1/x is the only one missed? I think this is the only one. I also know, that this differential equation is not a straighforward one, for example with the initial condition y[1]=1, there are two solutions, y[x]=1/x and y[x]=2-x. Also, my question is: how come Mathematica misses a solution? I guess it is because of the non-uniqueness, but I would expect at least a warning message. Is there anything I can give as option to DSolve to force it to find all solutions?
The simplest classical example of nonuniqueness is
DSolve[{y'[x] == Sqrt[y[x]], y[0] == 0}, y, x]
Of the infinitely many solutions, Mathematica only gives one, which is itself correct only for x>=0.
So, it seems that Mathematica is not (yet?) programmed for this sort of situation.