The behaviour of .init changed in release 1.017/2.001, and discussed at length on the following thread:
http://www.digitalmars.com/d/archives/digitalmars/D/Public_outcry_against_new_.init_behaviour_55158.html#N55170.
The documentation should updated to the new spec.
int a;
int b = 1;
typedef int t = 2;
t c;
t d = cast(t)3;
// Doc => Actual
int.init // is 0 => 0
a.init // is 0 => 0
b.init // is 1 => 0
t.init // is 2 => 2
c.init // is 2 => 2
d.init // is 3 => 2
Comment #1 by braddr — 2008-04-27T15:02:00Z
*** Bug 2049 has been marked as a duplicate of this bug. ***
Comment #2 by braddr — 2009-06-07T17:33:51Z
Fixes submitted to svn as revision 1180 and will be pushed to the website the next time walter updates and deploys.