Сейчас разбираю - в одном файле создание объектов через замыкания, через new и через Object.create. Нафига?
Создание объекта через замыкание - модуль. Нужно потому что в JS нет модификаторов доступа и все приватное должно быть сокрыто в изолированной области видимости. Это шаблон.
Создание объекта через new - а вы как объекты создаете? Не пользуетесь объектами вообще?
Object.create - это уже для наследования применяется. Да, конечно если вооружиться каким ES6 все будет делать сам JS или трансляторы ES6 - ES5. Но знать об этом нужно.
Как разбираться в чужом коде? Нужно уметь писать свой для начала. Описанные вами проблемы решает периодический код ревью и т.д. А среди фронтэндщиков писать говнокод так же популярно как и среди других разработчиков. Возможно только в PHP комьюнити процент говнокода больше. Это проблема отсутствия образования и понимания тех самых паттернов и т.д. Заучат для собеседования и все.