1) Меня смущает, что в методе объекта «а» функция стрелочная и возвращает (this) этот же объект, т.е. имеет собственный this, хотя не должна, как в случае с объектом object 2) Как переписать на обычную функцию?
Каждая ф-ция создаёт новое замыкание, новый контекст. Объект нет. Конструктор в данном случае создаёт новый контекст, который наследует стрелочная ф-ция. Метод в объекте не создаёт новый контекст и метод наследует глобальный window.