Я бы не сказал, что это всегда плохая практика, но это отчасти запах кода .
Если оба класса делают разные вещи , тогда почему у них нет разных имен?
если оба класса делают одно и то же , тогда почему существуют два класса?
С практической точки зрения это может стать очень раздражающим, если эти два класса когда-либо нужно будет ссылаться в одном классе: вам придется использовать FQN для одного из них (для ясности, вероятно, было бы лучше использовать его для обоих в этом случае).Если эти два класса находятся в достаточно разных частях кода, чтобы на них не ссылались из одного и того же кода, тогда практическая проблема не так уж и плоха.