In Dante's Inferno, Dante uses the cross of his dead fiance, Beatrice, in order to absolve people. When you absolve souls, they are sent to heaven. At the end of the game, Dante uses the cross to absolve Satan, which means Dante just put Satan back in heaven.
Dante didn't absolve Lucifer, he just blasted him back into his prison. The ending does imply that part of Lucifer somehow piggybacked on Dante's cross-shaped sin tapestry and is now loose in Purgatory, but Lucifer isn't in Heaven just yet.
What about the Absolve and Punish options? Think about what those mean. Absolving would imply that you are sending them to Heaven, or at least Purgatory. That means that if you absolve one of the demons, you're giving a purely malevolent being a chance at eternal peace...while the countless souls in Hell that you don't absolve remain where they are. Then think about Punishment. These beings are already suffering terribly; how could you punish the damned? What are you doing to them that is even worse than the fate they've been given in hell?
Then consider that if Absolving souls (and demons) does free them from Hell, you have the power to save everyone from eternal misery—and most of them are there for petty crimes. Instead, you ignore 99.9% of them in your myopic quest to find Beatrice.
Fridge Brilliance kicks in: have you just noticed how many damned souls are there? releasing them all will require all eternity to say the least. And also the fact that if some of them are in hell there's a reason for this...
In which case, why would the game give you an opportunity to absolve Attila the Hun or Gessius Florus?
Dante recognized them and wanted to go over and personally punish/absolve them?
You can't really be absolved unless you want it and show regret. It seems every demon he absolves is a fallen angel that want to return to God's side.