I love generics - they can enable faster development, and clearer, reusable and maintainable code. But generics are syntactic sugar that have a non-trivial cost to the size of the firmware (more opcodes, more complex opcodes, bigger and more complex type and introspection firmware). Generics can also have a negative impact on heap size, heap fragmentation, and program size, depending on how you use them.
So, as much as I would love to have generics, they pay off at compose-time by shifting some costs to compile-time and run-time. So, you benefit once with quicker/easier coding, but then pay the cost every time you run.
NETMF has always been about trading memory and cycles for easier programming. Your code runs perhaps 100x slower, and with a 2x or larger total footprint in exchange for a quicker development cycle. You can pay that off by buying larger chips for the task than you might have for an equivalent native-code implementation (again, benefit once, pay for every copy). Even given NETMF's role as a development lubricant, the addition of generics to M4-class chip sets seems to me to be on the wrong side of the diminishing returns curve.
[fwiw, in my opinion, async/await is also in this class - it's just compiler tricks to do stuff you can already do]