How to add space between node and edge?

I want to add space before the beginning of the edge and after the end of the edge connecting to the nodes. ex.) below,
space_bw_edge_node

Note:
there is a space between Node:A and the tail of the edge
space between Node:C and the tail of the edge
space between Node:D and the head of the edge

can you pls guide how to do that in dot?
I was able to do that by creating a subgraph for each node and making it invisible. Since I have hundreds of nodes, I am looking for some other way like, attribute configuration like that to achieve this.

[this would be much easier if there was a “skip” arrowhead type (Arrow Shapes | Graphviz) or if edges could be composed with varying colors]

Embedding within clusters seems to be the “easiest” way. The only other way I can find is to use HTML node shapes within a rectangular node - even more work.
If your only objection to embedding within clusters is the effort to edit an existing graph definition, I can probably work up a script to do that editing.

This is a good idea, at least, minimal disruption to existing code. Someone should implement. Maybe this idea could also fit into some notion of parameterized dot and dash patterns.