Move `DEFUN` and `DEFMETHOD` to `octave` namespace?

IIUC, DEFUN and DEFMETHOD have been moved to the octave namespace for Octave 8. That was done manually in the sources by adding the respective namespace tags around the definitions.
Was that change only intended to happen in Octave’s own code base? Or should user code (e.g., from Octave packages) also add their functions to the octave namespace?

I don’t think external packages should be adding functions in the octave namespace. That should be reserved for Octave itself, so we can avoid name collisions. It seems to me that there would be trouble if other people start adding functions to our namespace.

The macros themselves are not in the namespace, are they? Did I make a mistake with the changes so that using those macros forces the namespace on any user of the macro?

The macros are not in the octave namespace afaict.
I just got kind of used to omitting the namespace prefix inside those functions. But reserving the namespace for core Octave seems reasonable to me.

See also your other recent post: Packages failing to build after removing deprecated functions - maintainers - GNU Octave