yo veo genial tu implementación, sin embargo puedes hacerla mas simple:
Código PHP:
session_start();
if ( ! isset($_SESSION['foo']) OR ! isset($_COOKIE['foo']))
{
$_SESSION['foo'] = new Bar();
setcookie('foo', 1, time() +1800);
}
al fin y al cabo ambos bloques hacían lo mismo...