Here you can see that the ArrayObject is constructed by reading registry key options or by calling method rebuildOptionCache() from the option repository (if the registry entry is not available for whatever reason).
So let's see what rebuildOptionCache() does:
PHP:
public function getOptionCacheData()
{
$options = $this->finder('XF:Option')->fetch();
$optionArray = [];
foreach ($options AS $option)
{
$optionArray[$option['option_id']] = $option['option_value'];
}
return $optionArray;
}
public function rebuildOptionCache()
{
$cache = $this->getOptionCacheData();
\XF::registry()->set('options', $cache);
$this->app()->options = new \ArrayObject($cache, \ArrayObject::ARRAY_AS_PROPS);
return $cache;
}
Is this clear now?
Tl;Dr \XF::options() returns an ArrayObject that represents all XenForo options (cached data from table xf_option, all options that can be configured via ACP > Setup > Options).
... and all that could have been discovered quite easily by just looking at the source code and following the call chain