When creating a macroexpansion buffer, mark it as unmodified.
Make IDO try to guess if to use file names at point and make it always display the buffers in the selected window.