the short version is: it's remarkably easy to go overboard with ambients and make things very difficult to reason about and maintain. They form invisible dependencies in your code, and you should be very thoughtful about when that property is desirable