What has to be distinguished (although I do understand this is not that easy), is difference between package itself and user data.
Taking the example you share:
- what Josep describes is mail package.
- you (valid) point is to said "what if mail address in LDAP is used elsewhere?"
You're both right
Goal is not to remove or even alter LDAP content, at least part of LDAP that is user related, but to ensure that all components related to mail are removed, including init scripts. This has to be done otherwise Zentyal users can't safely (if I can say so) test any module on live platform without reinstalling everything. I know live platform is not supposed to be used for test purpose but real life is not that simple
I remember months ago I made some transparent proxy tests then reverted back: Zentyal behaviour however was not the same as prior transparent proxy settings. This is not "package removal" but you got the idea