I'm not saying the current system is rehabilitative, but rather that it's a perverse consequence of attempts in the 1960's at making the penal system rehabilitative. The rehabilitative approach shifted the focus from the offense to the offender. This is logical: in a penal system the punishment fits the crime. In a rehabilitative system, the punishment is tailored to the offender (ideally with an eye towards reducing recidivism).
That backfired, because it turns out criminal offenders aren't particularly sympathetic. Once the focus was on the offender, it became much easier for people to justify long sentences and harsh punishment than when the focus was on the crime in the abstract.
The deep irony of the focus on the offender is that it allows us to punish Jamal from the hood much more harshly than Johnny from the suburbs for the same exact crime, all because Johnny doesn't have a rap sheet of minor offenses and is socialized to look contrite and afraid at sentencing.
So I wouldn't call today's policies rehabilitative, they are very much neoliberalist, much like American economic policy.
For effective rehabilitation program you need a few things - low sentences for non violent crimes , social norms that not reject the ex felons and allow the reintegration.
Also you need robust job market and social safety network.
And i think that sentencing should be done on scientific grounds and not moral ones.