To answer your question:

"I don't understand why anyone would need to set/override this property from external scripts. which usecase is that since there are only one tpc.version to set ?"
The value of the property is passed from Jenkins to jbosstools-build-sites/aggregate/build.xml via two poms (for the JBT core agg site and the webtools agg site poms) so that we can generate pretty HTML pages reporting on what was used to produce the build.

publish.sh also receives these Jenkins properties so that this information can be captured in log files and fed back to the Jenkins view, via the Build Description configuration in the jobs.

Because -Pmaximum is a shorthand way of setting the selected TP version to the default maximum, and we would rather explicitly state the version when building via Jenkins (so that as above we can capture the information in results.html, logs, and Build Description), I've removed it from the 4.1/7.0/master/trunk jobs. I've left it in the 4.0/6.0 jobs because I can't be arsed and because less changes in maintenance branch are better than more. As you say, it's better to change less there so as to ensure builds are more reproducible.