simplifying expressions – Simplification and numerical evaluation differ substantially

My question is very simple. I am trying to simplify an expression that I was expecting to be vanishing. However, If I numerically evaluate the expression (for large values of one parameter) I find 1, whereas if I simplify it I get 0, see the picture

Here’s the code to reproduce it

(m Sqrt(P + Sqrt(m^2 + P^2)) - Sqrt(-P + Sqrt(m^2 + P^2)) (P + Sqrt(m^2 + P^2))) 1/Sqrt(P + Sqrt(m^2 + P^2)) /. m -> 1 /. P -> 10^8 // N
(m Sqrt(P + Sqrt(m^2 + P^2)) - Sqrt(-P + Sqrt(m^2 + P^2)) (P + Sqrt(m^2 + P^2))) 1/Sqrt(P + Sqrt(m^2 + P^2)) // Simplify(#, {m > 0, P > 0}) &

What’s happening?

Equivalently, I have rescaled $$mrightarrow x P$$ and try to take the $$xrightarrow 0^+$$ limit. I get the error "Unable to determine whether expressions .... are equal to zero. Assuming they are."

Here’s the code

(m Sqrt(P + Sqrt(m^2 + P^2)) - Sqrt(-P + Sqrt(m^2 + P^2)) (P + Sqrt(m^2 + P^2))) 1/Sqrt(P + Sqrt(m^2 + P^2)) /. m -> x P // Simplify(#, P > 0) &
Limit(x - Sqrt((-1 + Sqrt(1 + x^2))/(1 + Sqrt(1 + x^2))) (1 + Sqrt(1 + x^2)), x -> 0,Direction -> "FromAbove")

This is strange because if I FullySimplify the expression under the limit, I get 0. What am I doing wrong?