Hello! (Links below are relative to your install directory)
1. Yes, this can be done. [.../resources/javascript-doc/alg.project.html#.create__anchor]
2. You can get information about smart materials in your layers, but I don't think it's possible to edit them... can someone from Allegorithmic verify this? This is all I'm aware of: [.../resources/javascript-doc/alg.texturesets.html#.structure__anchor]
3. This is possible, though maybe not easily. There is an update method in the API, but I'm suspecting you'd want something more automatic: [.../resources/javascript-doc/alg.resources.html#.updateDocumentResources__anchor]. The good news is, the source code for the entire Resource Updater plug-in is fully available under your plug-ins folder, so you could tweak it or pull things out of it to roll your own.
4. Yes, this is supported. [.../resources/javascript-doc/alg.mapexport.html#.exportDocumentMaps__anchor]
Cheers,
-- B --