It is my understanding that (which may be incomplete and/or incorrect) that the execution of a build only happens in terms of goals i.e. if you executed all goals (explicitly) of all preceding phases and the intended phase in sequence you will achieve the same result. It is true that some state may get passed between them via reactor in-memory context or some such, which could be a problem. All that is understood.
I think the user will use the functionality under discussion with the knowledge that prerequisites must be satisfied. Assuming that is true and the user has considered all of that and made sure the prerequisites are satisfied, they may choose to use selective run functionality. It is true though that it may still not work in some cases because in memory state that needs to present which is set by goals in preceding phase may not be present in selective run scenarios - too bad for that use case. Hopefully the user will find that out quickly and not use this functionality.
Sandip