Дмитрий Акулич, Производительность — хрен с ней. Трансформации увеличивают элемент, но не увеличивают пространство им занимаемое. Для одной-двух строк текста сойдёт, но из-за больших блоков поедет макет.
document.querySelector — возвращает один элемент
document.querySelectorAll — вернёт массив элементов, по которому можно пробежаться циклом и навесить обработчики событий.
Delonixer, не лучше.
Вы даже не знаете как построить архитектуру движка. Даю сто процентов, что в дальнейшем, при необходимости что-то изменить/добавить вы будете переписывать половину движка.
Время. Вы слишком много его потратите вначале и регулярно будете тратить потом. В конце осознаете, что оно было потрачено впустую.
Я не отговариваю писать велосипед. Но прежде чем его создавать, было бы неплохо ознакомиться, как это сделано у других. Изучите, хотя бы поверхностно, один-два фреймворка, посмотрите их внутряки, что есть, как взаимодействует и т.п. Поняв принципы, вы сможете ответить себе на вопрос, поставленный здесь.