La forma correcta de usar POST en el método open es la siguiente:
Código PHP:
function modArrayBec(action,arg) {
request.open('POST', 'rpc.php');
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send('valor='+action+'&nombre='+arg);
request.onreadystatechange = func_modArrayBec;
}
Por otro lado si bien tu variable action puede ser de tipo bool, al enviarla se envía como string, por lo que tu PHP debería quedar:
Código PHP:
<?
session_start();
if(!isset($_SESSION['datos'])){
$_SESSION['datos'] = array();
}
if($_POST['valor']=="true"){
$_SESSION['datos'] = array_merge($_SESSION['datos'], split(",",$_REQUEST['nombre']));
$_SESSION['datos'] = array_unique($_SESSION['datos']);
echo "true";
}elseif($_POST['valor']=="false"){
$indexVal = array_search($_REQUEST['nombre'],$_SESSION['datos']);
unset($_SESSION['datos'][$indexVal]);
echo "false";
}
?>
Saludos.