Нельзя лезть во внутренние данные чужих модулей, ни как, ни через глобал, ни через рекваер (что то же самое), ни через синглтон, ни через ивент-эмиттер, ни через передачу их в методы/функции по ссылке. Это правда. Нужно общаться между модулями через интерфейсы. А как вы передаете интерфейсы, через глобал, через инхекцию, рекваер, ивент-эмитером или как угодно - не важно.