Source of answer https://community.magento.com/t5/Magento-2-x-Programming/Relationship-in-block-and-template/td-p/459182
Case 1: Single Block & Multiple Templates
No this can not be true as at a time only 1 template can be assigned to any block. you can not assign multiple templates to any block. the block template is assigned when its instance is created. so only 1 template can be assigned to the block, Yes we can apply conditional statements and update the templates like in widgets in the admin area but the template will be one for any block.
Case 2: Multiple blocks and single template
Yes, this can be done for any new blocks that are having the same Product list page structure.
Case 3: Multiple block instances and single template
Yes, this is true, When any Block's instance is created then a template is assigned to that block & for multiple instances, one template can be used.
Case 4: Multiple block instances and multiple templates
Yes, this is true, When any Block's instance is created then the template can be assigned via conditional statements within _toHtml() function like below:
/**
* Returns block html
*
* @return string
*/
protected function _toHtml()
{
$type = $this->_request->getParam('type');
if ($type == 'new') {
/* set new template if request parameter type = new */
$this->setTemplate('Magento_Catalog::product/list_new.phtml');
}
return parent::_toHtml();
}