Couple notes.
Your suggestion is great and is an obvious improvement upon the original, too simple, suggestion.
But what you proposed syntactically speaking doesn't work: if you want an optional text for the editbox then you wouldn't be filling AND a ghost text AND the original field for the editbox's text.
The new beta only implements a default (optional) text, which, practically speaking, is quickly limiting, a better implementation which doesn't break the current syntax would be
edit "", id, x y w h, ... optional
With the optional option and empty value for the text, it would then show the default (optional) as an optional/ghost text.
edit "custom", id, x y w h, ... optional
Whereas this would then show the custom optional/ghost text "custom"
And we do need a /did switch to get that behavior.
It would also be nice to have an option to get a default value, so basically a text that is selected, which, when in focus, would automatically overwrite itself.
This can't be scripted.