Это зависит от того, содержит ли объект какие-либо изменяемые данные или нет.
Если объект является просто держателем для чистых функций и неизменного состояния, не имеет значения, сколько потоков использует его одновременно потому что они не могут влиять друг на друга через общее состояние.
Если объект имеет изменяемое состояние, то все может определенно go ошибаться, если вы обращаетесь к нему из нескольких потоков без какой-либо блокировки, либо внутри объекта, либо внешне.
Так что это хорошая практика, пока нет изменяемого состояния. Это хороший способ сбора связанных методов в одном и том же пространстве имен или создания глобальной функции (путем определения метода apply
).