Внешний pull-up/pull-down нужен в том случае, если к пину подключено какое-то внешнее устройство (микросхема там или транзистор не суть) и важен какой-то определенный логический уровень на данном пине, до того момента как ему назначена функция (прошла инициализация). Или в случае если инициализация вообще не прошла и работа МК заблокирована - понизилось питание и сработал супервизор, не запустился кварц, произошел программный сбой и МК завис/реинициализировался и т.п. Если по-умолчанию пины находятся в Z-состоянии или работают как входы, то pull-up/pull-down могут обеспечить требуемый для безопасной остальной части схемы логический уровень.
В случае же если пин не используется вообще, то лучше назначить ему функцию выхода и вывести логический ноль. Почему ноль? Для того, чтобы в случае чего отвести помеху на землю, а не в питание. Эта рекомендация не полностью согласуется с оптимальным энергосбережением в случае, если выход не пуш-пульный и выполнен по CMOS-технологии, а, например, с открытым стоком и встроенным pull-up, как в некоторых 51х. Или в функции пина вообще не предусмотрена его работа как логического выхода.
Так что совет мой не совсем универсальный и применять его нужно в совокупности с детальным рассмотрением архитектуры конкретного микроконтроллера и функциональности его выводов.
В дополнение см. рекомендации по применению в энергосберегающих режимах и подключению неиспользуемых выводов (Таблица 2.2) для MSP430 .
http://www.gaw.ru/html.cgi/txt/doc/micros/msp430/arh/2.htm