You are quite correct pointing out the namespace issues between different modules. Magento's behaviour when it comes to this is fairly straightforward. If something in core is overridden by a something in local, the local one takes preference. The problem becomes that if two modules in local override the same thing in core, only one of them will actually be used. It seems that when this situation arises, Magento gives preference to whichever module name is first alphabetically. For example if Fontis_Australia and Fontis_Customer were both to override the same Core_Customer config file, the Fontis_Australia module would be used and the Fontis_Customer would not.
To avoid this, the trick is to override the least amount of code that you can, and avoid repeating core code in your own modules whenever possible. Yes, if a new version of Magento comes out with a new custom customer attribute this attribute won't be loaded, but to make it loaded you just have to put the relevant lines of code from the core config file into your local config file.
You are quite correct pointing out the namespace issues between different modules. Magento's behaviour when it comes to this is fairly straightforward. If something in core is overridden by a something in local, the local one takes preference. The problem becomes that if two modules in local override the same thing in core, only one of them will actually be used. It seems that when this situation arises, Magento gives preference to whichever module name is first alphabetically. For example if
Fontis_AustraliaandFontis_Customerwere both to override the sameCore_Customerconfig file, theFontis_Australia modulewould be used and theFontis_Customerwould not.To avoid this, the trick is to override the least amount of code that you can, and avoid repeating core code in your own modules whenever possible. Yes, if a new version of Magento comes out with a new custom customer attribute this attribute won't be loaded, but to make it loaded you just have to put the relevant lines of code from the core config file into your local config file.