I'm guessing what you want is normal order evaluation. But then the rule has to be that the expression is evaluated when used in a primitive. If used as input to a custom block it should stay unevaluated. And yes, when evaluated it has to be memoized.
The reason we have unevaluated input types is that they were the resolution to a huge all-night Skype fight about reporter IF, which at that time was a custom block in the BYOB Tools library. It looked like this:
... except this was BYOB, not Snap!, so it really looked like this:
Back then our design for procedure-type inputs was terrible (my fault so I'm allowed to say so): When you dragged an expression over one of those slots it either was or wasn't ringified depending on exactly how far from the center of the slot you let go of the input, so it was both cognitively demanding and requiring good motor skills.
Of course the last two inputs had to be delayed (by thunking) so that base cases in recursive reporters would work. The fight was between the developers (Jens, me) and the teachers (Josh Paley, Dan Garcia). The teachers thought that reporter IF was really offputting to students, and that those two input slots should just look like Any-type slots and the normal-orderness should be implicit. Jens and I didn't want this one block to have an idiosyncratic evaluation rule that we'd have to explain. After -- what was it, five hours? -- of yelling at each other we finally gave in and agreed to make reporter IF a special form. We then all went to sleep (separately).
When we woke up, Jens and I had had the same idea in the middle of the night: Instead of making a special case for reporter IF, we'd make the unevaluated input feature available to all custom blocks! We were very excited about this because it meant reporter IF wasn't a one-off kludge, and because it was something we could teach kids about, the fact that there are situations in which you don't want applicative order evaluation.
So, you're quite right that procedure-type inputs satisfy the need (apart from the small syntactic detail that you can't type a constant value into a procedure-type slot), but what unevaluated input types do for us is transfer some cognitive difficulty from the user of a project to its author.
This sort of discussion, by the way, demonstrates why I worship SICP.