NSButton uses an NSButtonCell to do all its drawing. The best solution that doesn't break Accessibility and doesn't have the label show up as a "Label" separate from the button to VoiceOver is to subclass NSButtonCell and to override its -drawBezelWithFrame:inView: method to draw your own button border there.
That said, if you wanted to make a view "transparent" for clicks, you could do so by overriding the -hitTest: method it inherits from NSView to return nil. However then you'd also have to make sure you set it to be ignored by accessibility to avoid weirdness.
Maybe, instead of using an NSView to draw text, a better approach would be to use a CALayer. Layers are more lightweight than views, and by default don't take part in hit testing. There is even a text layer type that takes care of properly drawing. This is what Apple started using recently (in 10.8, or maybe it was already 10.7) for NSButtons if they use the standard configuration and don't override anything. They use one layer for the bezel (whose middle they stretch), and another for the text, IIRC. That way, only one texture needs to be uploaded to the GPU for all buttons of the same type. Only if you override something in NSButton, Apple will fall back to a compatibility mode that actually uses NSCell.