I can't tell whether you're paying too much attention to the fact that my example uses numbers. I just did that because they're simpler. But, for example,
Back then, when I joined Snap! coming from Scratch, something that used to confuse me was the list system. In Scratch, you could make a list easily like you are making a variable. For Snap!, you have to assign a variable as a list.
Now I get it: other programming languages like Lua or C# all make their lists using variables, and I get that Snap! is sort of like these programming languages, but...
But, in Snap! a bunch of other things like sprites (images) can be stored in variables, and variables have to be made to any data type, so lists are treated equally to images, strings, numbers and sounds.
The impression I had (no expert here) was that first class and non-first class data can both be used directly, so the distinguishing factor is that first class data can be kept in a variable.
Look, the whole reason we exist is to enable users, such as for example you, to create blocks on your own. If you can't live without FOREVER IF, it's easy to write it yourself! Knock yourself out! Go wild!
If we made every trivial thing a user asks for primitive, we would be denying you the experience of writing it yourself.
Sometimes we have to add features to support building certain control structures. For example, we had to invent upvars to support writing FOR.
1: You've been spamming on the Forums, and no one likes that. You could get banned or suspended or something on the Forums for doing that. Please stop.
2: @bh said that the devs won't add the block again. Stop being a Karen and stop saying the same things to get someone to do something. Believe me, it won't work.
3: Another nail in the coffin! You don't pay attention to anything in our comments! So pay attention to others. Don't act arrogant or be condescending.