If an existing user goes to renew a membership, makes an error with their CC - and hence has a Failed contribution, then there is no reason imo why their existing membership should be set to Cancelled. The current behaviour results in them being prevented from trying to renew again.
Outcome, imo, should be that if a Membership exists, and a payment Fails, then the membership status should be left how it was.
This has been discussed in forum https://forum.civicrm.org/index.php/topic,34082.msg154608.html#msg154608
and in SE http://civicrm.stackexchange.com/questions/2482/membership-sets-to-cancelled-when-contribution-fails-why/10243#10243