Paul good point,
from a compatibility point of view: we should ensure that these macros returns an uint8_t *, so the libraries made for AVR could work without (or with less) effort.
from an API point of view: portOutputRegister returns a pointer to the Output Register (as the macro name suggests) and I expect this pointer to be of same size of the register.
Maybe we should add something like:
typedef volatile uint32_t *OutputRegister;
together with portOutputRegister?