The cplusplus.SelfAssignment checker has a visitor that is added to every BugReport to mark the to branch of the self assignment operator with e.g. rhs == *this and rhs != *this. With the new NoteTag feature this visitor is not needed anymore. Instead the checker itself marks the two branches using the NoteTags.
Looks like you almost invented note tags here :)
Could you assert that this is indeed the case? Like, check that the "from" CFGBlock of the edge is the current CFG's ENTRY block? 'Cause it's not obvious that the beginning of the function is the correct source location in all cases where the CFGTerminator is not present (you should also be able to assert that the CFGTerminator is not present, but i don't think it's the right thing to assert, as we might add more kinds of statement-less CFGTerminators in the future).