Intrusive features, on the contrary, will require some changes in the source code but those changes must not affect how the code is executed. For example, suppose the code author would like to draw the reader's attention to a dangerous piece of code via changing the code block background to red. Certainly, such a block on a flowchart diagram will unavoidably catch an eye. Suppose this is done on the graphics pane. Then this information should be stored somewhere to be shown properly when the file is opened two months later. In my opinion this additional information is valuable and it deserves to be injected directly to the source code.
The same story is about another important feature which could also be implemented. Imagine that you are reading a code which was written by somebody else. Gradually you understand the certain pieces so that a group of statements makes a certain sense to you. So you could group the appropriate graphics items and replace that with a new graphics item with an appropriate text on it. For instance, a rectangle with doubled edges will appear with a text 'calculation of a checksum'. So, the start and the end point, as well as the replacement text, should be memorized somewhere.
Another similar feature is to replace a piece of code on the diagram with
a text. For example there could be a very long and complicated condition in an
statement which could be replaced with a description of it in plain English.
Lastly some special items could be added to the diagram like links to the outside resources.