В идеальной системе, где все отлично документировано, и все люди, работающие с кодом, знают о том, что было переопределено и исправлено - тогда да, возможно.
Но, как мы все знаем, такие ситуации существуют редко. Лично я чувствую, что исправление чего-либо, уже определенного в Kernel
, Class
, Module
или Object
, - это нет-нет (если вы не делаете это на уровне платформы).
В конечном счете, я считаю, что Принцип Наименьшего Сюрприза должен проникнуть в решения по кодированию на всех уровнях.