Hola Pitufet,
El isset te está funcionando bien. El problema lo tienes en que estás usando el acceso al array $sel_foo[] sin tenerlo previamente declarado; es decir, intentas acceder a $sel_foo['candy'], $sel_foo['does'] y $sel_foo['nothing'], que no existen. Para que te funcione, antes debes declarar el array:
Código PHP:
<?php
$sel_foo = array('candy' => ' selected=""',
'bar' => ' selected=""',
'does' => ' selected=""',
'nothing' => ' selected=""'
);
if(isset($_POST['foo'])) {
$sel_foo[$_POST['foo']] = ' selected="selected"';
...
?>
Un saludo,
Carlos.