In buildmagic.ent (circa line 66) the 'property' task is redefined.
I have checked the code and I think the effet of System="true" takes the property/value and register it at the System level (System.setProperty(name, value)).
So, if ant is called from another java object, properties defined with the System="true" attribute will be visible outside the ant project scope and made available to the caller itself.
Yum, this is some of that magic which people have so much trouble understanding (hehe). The execute modules task is basically a wrapper around the ant task and due to the way it handles property inheritence this was added to give access to setting system level properties... so that when a module it is executed it will see the property value with out have to explicitly pass the property to it or force the module to inhertit all of the properties from the build module.
Basically this is a work around... actually most of BM is a work around, as Ant is terribly inflexible. I think the Ant folks were not thinking about large scale projects when then threw it together. Have not looked at the latest goods from the Ant folks though... I am sort of jaded by it now.
I am hoping that Maven will get up to speed fast and then leave Ant for simple examples and such (though Maven might be able to handle that too).