I'll still answer, because this is something I tend to always do, so I'll give the rationale and we can discuss it.

The companion object is a factory for this class, and hence I want all code to go through that factory. If tomorrow I need to perform some additional steps during the instance creation, I know it will be enough to do it in the factory. The same can't be said if the constructor was not private.

I know I'm being very defensive here, but I like to think this is a good quality.