I agree that this probably would be cleaner.  However, having `get_config_path` create a directory if none exists seems a bit strange.  This seems to be sort of a side-effect that's inconsistent with what the function name suggests (it seemed very strange to me that a `get_config` call would trigger an attempt to write something to disk).  In my opinion it would make more sense (and be cleaner) for `get_config_path` to simply return the desired path (regardless of whether it's writeable, exists, etc.).  In `get_config`, if the file doesn't exist and `raise_error` is True, then raise the appropriate exception otherwise return the default value if the file doesn't exist.

An exception specific to the attempt to create the configuration directory (~/.mne) shouldn't occur until `set_config` is called.  This would require updating `set_config` to check and create the directory before attempting to write the new configuration file.

If you are happy with this suggestion I will revise accordingly.