ifdown eth0 and then ifup eth0 should always get network restarted.
This guess this works (calling udhcpc helps also) - but we're planning to have at least hundreds of boards running in unattended devices - so I need an "automatism" which cleans up at startup...
Best regards
Marco