What I've done for cases that I needed to add graphics layers, or any layer for that matter, on the fly based on user input AND make sure that I keep a default set of layers in order at the top is to:
1) create a list of the known default layers and their order (ie. the layers you want on top and in what order you want them)
2) tie into the event for when a layer is added, removed, or reordered in the map
3) that event is handled by then moving (you may have to remove the layer from the map and then insert it into the new desired index position) all of the layers in the default order list back into their default position (ex. you could have three graphics layers that you want to always be on top to handle point, line, or polygon data)
I don't have any code samples right now to help you out, but if you need it let me know and I'll get back to you. Hopefully the general idea helps you out.