Rehabilitation can and does work for those that really mean it and that try. It can be difficult, but it is a far better option. It keeps people from repeating mistakes over and over. This helps them and society as well. They no longer burden society with the issue and often feel better about themselves.
Often times people do things because they have to not because they want to. Rehabilitation requires someone wanting to make a change or do something specific. Retribution shows them why they need to make that change. If they do "negative act" then the punishment will be...... That is more helpful than saying "please change" which is what I think rehabilitation is.