> a faulty test case that will likely fail fast at least by making other tests fail

If test A fails because of test B modified some value, that's test pollution. If a test fails, ideally it should only be caused by the code under testing. With the assignment in beforeEach, in cases of failing tests, we know for sure that test pollution is ruled out as a possibility.

> It hides some bugs

A test modifying setup values isn't always a bug. There are cases where setup values are just convenient default values. Tests are free to overwrite them at will. In those cases, beforeEach also does no harm.