Sorry, I missed the second question about saving configuration. Yes you do need to manually issue the save_configuration() call. iControl will only effect in-memory objects. We did this because config-save operations are expensive and slow and we wanted to put it in the hands of the users as to when those changes were saved. BTW, this is another form of rollback as you can make iControl changes and then do a config.load to reload the previous config. Granted, that's probably not the best thing to do in a production system, but it is possible.
-Joe