In embed() in IPython/frontend/terminal/embed.py, there's logic to handle the case when the kwarg config == None (the default case). It looks like it's supposed to load the user's default config in this case, using load_default_config(), but the logic seems broken and the user's default config is never applied to the embedded shell. However, if you pass your own config as a kwarg to embed(), that does stick. In other words:
embed() # default config isn't applied
embed(config=load_default_config()) # default config is applied
Probably just a thinko in the code. There's a global _embedded_shell variable being used there.
Closed by merge of pull request #479