1) Статические члены отбираются только тогда, когда сам класс, который их определяет, собирается; это, в свою очередь, может произойти, только если собран определяющий ClassLoader. Это часто встречается в контейнерах веб-приложений и архитектурах плагинов.
2) Да, определение большого количества статических данных может быть плохой идеей. Но это как и многие другие вещи: хорошо, если вам это нужно, и плохо, если вы злоупотребляете этим. Просто используйте здравый смысл.
3) Опять же, интерфейс, который определил массив из тысячи строк, был бы плохой идеей, но, конечно, это обычно не то, что делают люди. Просто используйте здравый смысл. Нет (связанных с памятью) причин избегать статических переменных вообще.