自己解決
Windows10 だと、GetConsoleTitleA が必ず失敗するのが原因だった…

解決策
emacsclient.c の w32_window_app (void) 関数を次のように修正すると、
期待通りの動作

emacsclient --version → stdout/stderr
emacsclientw --version → MessageBox

になった。

int
w32_window_app (void)
{
static int window_app = -1;
- char szTitle[MAX_PATH];
+ wchar_t szTitle[MAX_PATH];

if (window_app < 0)
{
/* Checking for STDOUT does not work; it's a valid handle also in
nonconsole apps. Testing for the console title seems to work. */
- window_app = (GetConsoleTitleA (szTitle, MAX_PATH) == 0);
+ window_app = (GetConsoleTitleW (szTitle, sizeof(szTitle)/sizeof(szTitle[0])) == 0);
if (window_app)
InitCommonControls ();
}

return window_app;
}