Yes, I tried the current version. When the real block in front of the shadow block is deleted, the original shadow block appears, but with its original default value, not the value the user last entered, and it is sort of confusing to have a real block pop in there when you type something (though it is also pretty cool!). Here's what I anticipate will be a common user problem (based on the usage I've seen of our tool in the classroom):
1.
User gets block with shadow numbers in it onto the workspace (success!). Assume shadow default is "1".
User tries to edit number block by clicking around the number. When the number block is highlighted, they try to type. (fail - editor not engaged). Typically they'll type a backspace in preparation for typing their new number. without shadow blocks, the number block disappears (oh no!). With shadow blocks, nothing bad will happen. (yay!)
User tries again to edit number block by clicking around the number. Sees the editor come up. types number (say "2"). (success!) Shadow block turns into real block.
User realizes they need the block to contain a "3". They click around the number hoping to edit the number. They manage to select the number block. They hit backspace in preparation of typing their number. Real block disappears, replaced by the shadow with a "1" in it. User is confused.
Our users eventually get more adept with the editor interface, of course, the slowest being older adults and kids (age 7-11) with no mouse skills (they only have a tablet at home, and we teach on computers without touch screens). But accidental deletion of number blocks is a very common problem. Currently we mitigate it by having undo, and replacement number blocks that they can get from the Math category.
The current shadow block implementation is great as a substitute for an invisible default value for a field, but that wasn't what I was mainly hoping to solve. Rather than invisible defaults, we pre-parse code and alert the user to blocks with missing number blocks by highlighting the blocks in red and giving the user an error message with the number of missing fields, which has worked pretty well for us. But just playing around with the original shadow block implementation you showed, I really liked that it became much less likely to accidentally delete the number block while trying to edit, because the block is locked in, while still allowing variables to replace the numbers.