"Avoiding unnecessary constraints in a model leaves developers free to do purely technical performance tuning." #readingToday
Defining VALUE OBJECTS and designating them as immutable is a case of following a general rule: Avoiding unnecessary constraints in a model leaves developers free to do purely technical performance tuning. Explicitly defining the essential constraints lets developers tweak the design while keeping safe from changing meaningful behavior. Such design tweaks are often very specific to the technology in use on a particular project.
Domain-Driven Design, Eric Evans