Я за то, чтобы рефакторить код, когда в этом есть необходимость. Если вы что-то делаете и спотыкаетесь о неоптимальный код - то рефакторить. А перейти на новую версию фреймворка прост потому, что она новая - не оч здраво, как по мне.
Спорный вопрос. Мое имхо -чем быстрее перейдем на новую версию либы или даже фреймворка, тем меньше боли потом, чем апгрейд сразу через несколько мажор версий.