You can have a look at
This node if you haven't done it yet. It has some interesting discussion about the topic, specially
diotalevi's answer. It has some explanation about some internals where I get lost, but maybe you can get something clear. It also has a list of "not overridable functions".