How about the way those inaccessible interfaces impacts the software? Users who buy ethernet enabled board probably also want to run non-ethernet based programs / libraries. If we don't try to solve that may limit the accessibility of ethernet as one part of the available communications functionality. It would be great if we can make all Maple programs work well enough to keep software compatibility with and without ethernet.
Its something that broadly impacts program and library compatibility amongst the whole user base. Remember Arduino Mega - it has different SPI pins / wiring. Its essentially the same issue. Any solution has their own set of advantages and drawbacks.
For a focussed example, lets use the occupied SPI 1. As SPI is a common interface for many peripherals. Lets say we have written a library for the STM32 to control some specific SPI slave chip. Its a simple circuit. And lets just leave as undefined behaviour (depending on specifically unknown installation factors) whether the rest our the program might / might not optionally be reporting collected data over either USB or Ethernet. The SPI library knows nothing about our chosen data collection method.
1) Remap the labels (in software) so that on the ethernet board they skip over occupied interfaces: eg map SPI1 = SPI2. Then people won't understand why a silkscreen labeled SPI1 are actually connected to the pins of SPI2. And reading from the STM32 manuals (to do a direct manipulation of registers) would of course be troublesome without knowing about this.
2) On the other hand, say we choose that everyone uses only SPI2 onwards (avoiding SPI 1 to favor broader compatibility). Then also wiring to such interfaces starting SPI2 on the silkscreen (meaning no SPI 1). Would that be too tough on some? Loss of SPI 1 shouldnt be any significant concern for 144 and 172 LQFP. But would for example be an issue for the same program to run on the Maple Mini.
3) A software compatibility mode (that can be switched off if necessary). The compatibility mode would check for references to inaccessible ports (as called through approved API only). eg in this case using reference to SPI1, USART2,3 would break compatibility with an ethernet version. This would still allow users the option to take advantage of all possible IOs if they so wished. But would report the fact that their software won't work on eg Maple Mini. Or eg Ethernet variant, Discovery board and so on.
4) Do nothing, let people struggle to come up with their own specific software solutions. But recommend some best practices. On the Arduino what I have been doing is to specify local configuration initializers for which UART or SPI to use. And so the local configuration initializers too are set depending which is the board. It means that the wiring / circuit diagram must also be different.
Perhaps its not necessarily the most pressing consideration overall, but its worth bearing in mind for later on.