On Form Customization: yes and no. It doesn't create the rules automatically, but you can add a resolver to create them (or add the creation code to an existing resolver). It probably will do them automatically someday.as form customization is commonly used feature it would be great if you can add support for it someday

i absolutelly agree with you that a component should create only one namespace but it is legal to have more than one registerNamespace() call in your build.transport.php and it will work (tested against modx 2.2.14). i mean that you can generate the build.transport.php like this:
Namespaces: The package itself can have only one Namespace (a limitation of Package Manager). It might work to specify others (below the package namespace) in the 'namespaces' member of the project config file. If not, you could create them in a resolver as above (or maybe better -- in a validator, so they'll be there before installation). I try not to modify the build.transport.php file unless absolutely necessary. You can *almost* always accomplish what you want in a resolver. Once you list a custom resolver in the project config file and create it, it won't be touched by MyComponent. Just be sure it has a unique name or is named for the package.
$namespaces = include 'transport.namespaces.php';
foreach($namespaces as $namespace) {
$modx->registerNamespace($namespace['name'], ..........);
}you mean that Bootstrap will just read the project config file and create all listed objects without referencing the corresponding transport.<OBJECT>.php file?
RemoveObjects nukes all the objects in MODX. If you run Bootstrap after that, they'll be recreated as described in the config file, then exported in that form by ExportObjects. That's why you're losing the rank. If you specify the 'rank' field in the project config file where you describe the TVs, it should be preserved, but I'm not 100% positive about that.
i think installing a component with the packager will not overwrite any existing object. i'm not completely sure about that so i should retest. i didn't encounter any issues with the package manager yet
Bootstrap is designed to be non-destructive so that you can add objects to the project config file and install them in MODX with Bootstrap without affecting existing objects. Doing it the way you suggest would overwrite objects in MODX based on the config file (which, much of the time, will not contain all the information you need for those objects - e.g., properties and TV options). You'd risk losing valuable work.
you mean that Bootstrap will just read the project config file and create all listed objects without referencing the corresponding transport.<OBJECT>.php file?
I think it will reference the files for elements that have code files and for resources (assuming that ExportObjects has been run), and I think properties will be imported for those items. TVs don't have code files, so they will be created based on the config file. MC should probably check for TV properties files (if it doesn't already), but it won't happen anytime soon. 
You're absolutely right about registerNamespace() (and I was wrong about it being a limitation of Package Manager). Looking at the MC code, it appears that all namespaces described in the project config file will be created in MODX on Bootstrap. I'm not sure if they will make it into the package, though. Let me know if you try it. If not, I think I will just create a new resolver or validator to install them all.All namespaces will be created on Bootstrap, but they WON'T be created on package install.
All namespaces will be created on Bootstrap, but they WON'T be created on package install.
found another limitation with MC. When a TV is created on Bootstrap, object properties like 'input_properties' and 'output_properties' are completely ignored. ExportObjects preserves these properties. Is there any particular reason for this?