Perhaps the situation has changed since I last tried.
It used to be, in AppKit, that a normal NSButton could have its size class changed (small, regular etc.) but you couldn't set the height without subclassing and doing the background drawing yourself!
You can definitely do so, it's just not obvious or straightforward in many contexts.