Нормально, каких-либо ограничений нет. Дело в удобстве и универсальности, но это решает программист. Зачастую конструкторы и прочие методы могут принимать куда более, чем три аргумента. И ничего плохого в этом нет. Даже с помощью func_get_args() можно очень гибко организовать прием аргументов, если случай сложный.