As eatingCake already mentioned this is not optimized for release, but for debugging.
This is not a discussion of rust vs .NET. this is a discussion of Linux vs windows.
So I don't see how your comment is at all relevant.
If you compile the exact same rust code in the post on a windows machine, using cargo like in the post, then is the resulting windows executable file size really any different compared to the linux one?
See http://www.muppetlabs.com/~breadbox/software/tiny/teensy.htm... for a example of going very far (maybe even too far, once they start overlapping things, but YMMV) in the opposite direction.
If you don't understand how debug information works, or where the bits that provide your language, library, and OS runtime live, then you might well be surprised that they exist at all. It is, after all, sufficiently advanced technology.
Where else is there to go anyway, Forth running on a microcontroller?