I've been working on rust for the cc3200 (Cortex-M4) so similar but not identical to what you're doing.
My gut tells me that the code size is similar, or perhaps a bit larger. Stack usage can be considerably higher, especially if you do any type of formatted printing output. And you don't seem to have quite the granularity that you have using a traditional C/Makefile system (i.e. with make buildsystem I can compile most of the system using -Os and the stuff I want to debug with -O0). With cargo, I can't seem to do that yet.
I'm also currently working on the nrf51822, although my initial foray has been using C and C++. Once I have all of that working, I'm going to take a look at doing the same thing in rust to see how it compares.
Managing your own rust toolchain is a pleasant experience with xargo. Depending on your platform you may need to create your own LLVM target file which can be an endeavor the first time. The same author of xargo wrote a good cross compilation guide here.
The primary problem I ran into using rust on ARM was avoiding compiler-rt symbols. It has little/no support for ARM and you will have to define some symbols yourself. I'm collecting them as needed here. Also: #![no_builtins].