Yeah, casting easily looses the correct qualifier, which is not a problem here, because those are all value types.
Still it's a weird idiom for normal conversion because in general cast allow to do unsafe conversions.

> Using a constructor is already an established convention for conversion between types. We are still missing the int(x)

Yep, it's scheduled for the next release and definitely necessary for generic programming.
http://wiki.dlang.org/Agenda#introduce_.22uniform_construction.22_syntax
Interesting side note, in C++ `int(x)` is actually a blunt C-style cast.
http://stackoverflow.com/questions/4474933/what-exactly-is-or-was-the-purpose-of-c-function-style-casts