Not sure why it should be confusing. The user/developer should not expect to change the default properties, they just don't change. The `properties` param is there only for other properties and the code makes sure the defaults stay unchanged.