default-minibuffer-frame is a variable defined in `C source code'.
Its value is

It is a terminal-local variable; global value is the same.

Minibufferless frames use this frame's minibuffer.
Emacs cannot create minibufferless frames unless this is set to an
appropriate surrogate.

Emacs consults this variable only when creating minibufferless
frames; once the frame is created, it sticks with its assigned
minibuffer, no matter what this variable is set to. This means that
this variable doesn't necessarily say anything meaningful about the
current set of frames, or where the minibuffer is currently being

This variable is local to the current terminal and cannot be buffer-local.