Because widget_name::__construct()
calls WP_Widget::WP_Widget()
, which in turn calls widget_name::__construct()
etc.
A simple solution would be to make widget_name::__construct()
call WP_Widget::__construct()
directly.
Also see http://core.trac.wordpress.org/ticket/16768#comment:9