I don't see any reason why you can't use CAN_SET_TX_ID_STANDARD_MSG() or CAN_SET_TX_ID_EXTENDED_MSG() in your code. The IDE may be preventing you from setting the Mailbox ID to zero but I can't think of any technical reason why the CAN spec or CAN hardware in the PSoC would prevent you from using the highest-priority CAN ID.
I find that trusting the IDE to set up the peripherals is kind of hit-and-miss. I prefer to drop the module on the schematic page, configure clocks/etc. and then initialize it myself in software. The Peripheral_Start() functions pretty much do the same thing with tables generated by the IDE.
BTW, I found those macros by looking at the CAN.h file in the Generated_Source/ subdirectory. There are a lot of helpful macros in there.
Thank you! I'd expect an equivalent register/function call for the rx-mailbox as well. I'll have a look in CAN.h.