I think this exposes a design flaw in that the immutable and mutable parts of an artifact are in one class and should be split. ie scope, file, etc depend on the context of use, whereas everything else is immutable.
In fact, does project REALLY need a MavenProject as a parent? Couldn't it have just a wrapper around a model that supported parents which were also the wrapper so that inheritence was assembled. We don't really need the resolved source roots, etc for the parent - that occurs for the parent when it is constructed independently and projects are not cached or reused