Odin has numerous memory safety features enabled by default. Having manual memory management does not entail no "memory safety". You could easily have a language with GC or ARC and still have all of the unsafe features of C. Objective-C is a brilliant example of this.
Many memory safety can be achieved with many constructs such as:
* Bounds checking for array-like types
* Having no pointer arithmetic
* Having distinct typing (virtually no implicit type conversions)
* Having no array-to-pointer demotion like in C (combination of the above to problems)
That's because memory safety has a price: either a GC (which creates interoperability issues if you have two languages with GCs..) or a complexity price like in Rust..
So these languages stay memory unsafe but tries to minimise the issues caused by the lack of safety.