I would say "Self.X + Self.speed * dt" is not programming, it is only an expression. It's closer to maths than programming. I don't think the fact it contains the word 'Self' changes that, because it's just a way to tell C2 where to get the variable, so I think that keeps it in the realm of maths. We could disallow anyone from typing in syntax like that, or use a patronising block system where you first have to drag in a multiply block, then the dt block, then the Self.speed block, and so on and on. I think both options are clearly inferior. Anyone with a basic grasp of math should be fine using the typed expressions. There are lots of advanced expression features, but you don't have to use them - if you like you can just use things like Sprite.X + 1.
I would agree that "no programming required" is not strictly true, since the event system allows things like recursive functions, local variables, and loops. However I do think it's the most succinct way to describe it to new users. A more accurate line would be "no traditional programming required", but simply from a marketing point of view we think it gets the point across more clearly saying "no programming required".
The point of Construct 2 is it makes game development accessible. Drop a sprite in to a game, give it the 8 direction behavior, and run it in a browser. To code just that by hand, you need a good knowledge of the javascript programming language, including its syntax, performance issues, quirks and gotchas; you need to know a bit of HTML and CSS; setting up the WebGL renderer and asset loading in a memory-efficient way requires technical knowledge of how GPUs work; how to make an identically-drawing canavs2D renderer to fall back to when WebGL is unavailable; you need to know how game loops work, how to accurately measure delta-time, how to receive user input; how to do everything so far while dealing with cross-browser quirks and differing feature support; probably how to use a simple code editor and the Chrome dev tools debugger, how to configure a local HTTP server for testing, and probably a few other things I forgot. Construct 2 lowers this barrier enormously, and the example I just gave truly does not involve programming. Construct 2 makes it deceptively easy - you might see the object moving around with arrow key controls and think "what's so hard about that?". Potentially, there's a lot hard with that, if you're coding!