I like this, but I hesitate to add additional complexity when @spi already provides slicing for modules that present different views of public API to various clients. Do you have an example in mind?
In any case adding this flexibility is likely backwards-compatible if we wanted to introduce it later—we could interpret hidden and visible as special/default categories.