Я бы сохранил элемент; это имеет тенденцию делать код более понятным, когда вы не вызываете document.getElementById все время, и хотя в вашем случае вам может не потребоваться изменять идентификаторы или разрешать элементы без идентификаторов, это довольно распространенное желание сделать это.
(В отличие от apphacker, я не ожидал бы от этого огромного повышения эффективности, поскольку getElementById имеет тенденцию быть довольно хорошо оптимизированным в браузерах.)
Есть ли какие-либо проблемы с производительностью, о которых я должен знать?
Ссылки из объектов JavaScript на объекты DOM хороши сами по себе, но когда объект DOM имеет ссылку на такой объект JavaScript (обычно через обработчик событий), вы получаете цикл ссылок. Это приводит к утечке памяти в IE6-7, поскольку он не освобождает зацикленные объекты. Для небольших простых приложений вам может быть все равно. Для сложных, долго работающих приложений вам, возможно, придется обойти эту проблему, например, путем направления каждого обработчика событий через карту / массив поиска, чтобы не было прямой ссылки из объекта DOM на реальный обработчик событий.