Recently viewed products block is part of the Mage_Reports
module.
Looking in the source code here : app/code/core/Mage/Reports/Block/Product/Abstract.php:137
:
if ($this->getCustomerId()) {
$this->_collection->setCustomerId($this->getCustomerId());
}
and here : app/code/core/Mage/Reports/Model/Resource/Product/Index/Collection/Abstract.php:121
:
if (Mage::getSingleton('customer/session')->isLoggedIn()) {
$condition['customer_id'] = Mage::getSingleton('customer/session')->getCustomerId();
}
means that it should be unique for a logged in customer.
For a guest, this code (here again : app/code/core/Mage/Reports/Model/Resource/Product/Index/Collection/Abstract.php:126
)
else {
$condition['visitor_id'] = Mage::getSingleton('log/visitor')->getId();
}
seems indicate that it will be unique if the log feature is enabled.
Sometimes, the log feature is disabled (with some observer overload) to improve performance : maybe it could explain your issue in the guest case.
Sometimes, there is a full page cache feature added to the Magento 1 source code that could explain some issue even for a logged in customer.
Hope it helps.