The delete/free bits never made it in, but some related stuff definitely has made its way into the standard library and compiler over time. Span<T> and Memory<T> provide a bunch of affordances for safely mixing GC and non-GC pointers in the same workflow. Big chunks of the BCL can operate on strings and data at any address in memory now, which is really helpful for high-throughput parsing and streaming.
Affordance means that the interface of something indicates clearly how it's supposed to be used and for what purpose. This is broader term and it applies to physical stuff like door handles or knife grips too. It's intuitive enough which is probably why previous poster was confused about your question.
I've come across the term affordances before, but in this context if they'd been referred to as methods or classes or 'ways for safely mixing...' whatever I'd have got it, no problem. Calling them affordances is correct (technically they are) but made me think there was something vital (edit: perhaps .net related) I was missing. Mind at peace now, thanks all.
Is there even a way to allow for manual memory management (not just invoking the GC) in a manner that would still be safe that won’t defeat the purpose of a managed language?