In the 'core_renderer' class defined in '/lib/outputrenderers.php' the method 'render_from_template' is defined as:
and therefore override-able. In the same class the method 'render_pix_icon' calls it with the line:
and the method 'render_notification' calls it with the line:
therefore if 'render_from_template' was ever overridden then 'render_pix_icon' would call the overridden version but 'render_notification' would not because of the use of '$this' to refer to the object instance (hence inheritance and vtables etc) and 'self' to refer to the class. This is inconsistent and would cause a headache of oddity wonder.
Depending on policy they need to be both either '$this' or 'self'.