ventosus - Thanks for the info about the stencil. I'll try a similar route. Did you modify the DRC->Mask parameters?
" I've built a second Orone Mini equipped with the STM32F303CC ... "
Excellent!
"I use the built-in DfuSe bootloader to load code onto the chip, which works fine. I don't see the point of porting the maple Dfu loader to the F3, if there's already one built-in."
I am thinking along the same lines as you.
Originally I had planned on using either an ST-LINK/2 (e.g. the ST-LINK/V2 on an STM32FxDiscovery board) or a USB-UART cable to load the initial program. However, I decided to remove the need for that by bringing USB_DISC to a pad. It is just about available on the Orone-mini-S8A variant on a via connected to T1.
I've since modified the PCB to make access to USB_DISC easier. The two most recent designs (S8D which is 6mil track space, and S8H which is 8mil track and space) bring the USB_DISC signal to a proper pad on the 0.1" grid. This could be used to pull up USB resistor by pulling USB_DISC to ground. I would have liked to bring this to pad at the edge, but it is getting a bit tight, so it is interior to the board, labelled 'DISC' next to T1.
"minimal boot-code which fires up the DISC circuitry and then jumps to the buitl-in boot-loader. Although the jump works fine, the internal boot-loader resets all pins (even if they're locked) once started and again cannot enumerate"
It sounds like you are using ala42 technique for calling the built-in bootloader in system ROM. I had assumed that would work, so maybe ala42 can clarify. Have you got a JTAG debugger (e.g. an STM32FxDiscovery and gdb)? Can you see the code which resets the pins? Is it early enough in the bootloader that it can be skipped?
Edit: I've had as look at the PCBs. It is tight, and this may only be an option on the S8D (6mil track/space PCB), however I think there is enough space to get a ground pad next to the USB_DISC pad, on a 0.1" grid. So we could insert a 2 pin header, and USB_DISC could be shorted to ground with an ordinary 2 pin female jumper. Or the two holes (USB_DISC and Ground) could be wired to a button or switch.