https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Model/Config.php#L244-L254
https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Model/Config.php#L256-L256
https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Model/Config.php#L455-L458
https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Model/Config.php#L281-L281
https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Model/Config.php#L284-L284
https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Model/Config.php#L290-L290
https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Config/Model/Config.php#L292-L292
So actually implementing the \Magento\Framework\App\Config\ValueInterface
is not enough for a backend_model
and the \Magento\Config\Model\Config\BackendFactory::create
method should do more checks: maybe for being an instance of \Magento\Framework\App\Config\Value
or \Magento\Framework\Model\AbstractModel
class.