Right now the config_encode() and config_decode() functions are really hacky. The encode() functionality is just something I found on the internet, and decode() does a conversion through JSON because it is fast. There are probably better options for both. The plan right now is to keep the actual XML as simple as humanly possible, basically not much more than a key/value pair store, so keep that in mind. Performance and functionality need to be weighed pretty evenly.
The current status is described here: http://www.heyrocker.com/node/238 and here: http://www.heyrocker.com/how-use-drupal-8-configuration-system.