The way I see it, it’s not a matter of casual experience vs. academic accuracy but rather what you’re used to historically.
For those with a software background in embedded software or standard synchronous electronic circuits, the pulse idea will seem the most logical, and the way to go. On a microcontroller almost everything that has to do with IO is interrupt driven, and checking status flags becomes a routine. Both can be considered pulses. In synchronous electronic circuits, it’s self evident that data is latched at rising edges, and thus state only updates every clock cycle. There, the clock provides the pulses.
However, coincidentally, I happen to have written a thesis on the topic of asynchronous systems (in Dutch, sorry), and although it takes quite a change of mind to get into that logic, it makes just as much sense as synchronous (pulse driven) systems do.
For example, assume you’d want to use a potentiometer to dim an LED by PWM-ing it (if that’s even a word), and forget about microcontrollers for a second but think about how you would implement it on a breadboard instead. I’d use an LTC6992 PWM-controller, with an analog input voltage between 0 and 1V, generating a duty cycle between 0 and 100%. To implement such a circuit, I’d have to connect a potentiometer at 5V to a voltage divider (= scaling) to scale it from 0-5V to 0-1V, then feed it into the LTC6992. I then connect the PWM output of the LTC6992 to an LED, with a series resistor of course.
When turning the potentiometer, you’d expect the LED brightness to change instantly, right? There is no explicit “pulse” in this design: as soon as the potentiometer value is changed, the voltage divider is updated, then the LTC6992 is updated, and the LED brightness changes immediately. Most people would agree that it would be pretty ridiculous to put a flipflop between each block, and then clock them to update each value on the rising edge of artificially generated pulses.
Now assume you’d want to do the same with an Arduino Uno instead of an LTC6992. You read in the potentiometer as a 10 bit value with the integrated ADC of the Atmega328, then scale it from 10 bits to 8 bits with a bit wise shift, and feed the result into the 8 bit PWM controller driving the pin to which the LED is connected. In XOD you’d need at least 4 blocks (analog input, scaling, PWM controller, GPIO), connected directly to each other. In this application, it would seem awkward and unnecessarily complex to have it update-on-pulse.
I agree that the update-on-pulse concept allows for more advanced control, but it is a result of designing XOD with programming experience in mind, which is not necessarily the most logical. Put yourself in the position of a 10 year old who’s building an automatic watering system for a plant in his room, by connecting a humidity sensor and a solenoid valve to an Arduino. The kid wants the valve to open as soon as the humidity level drops below a treshold. Then it makes sense to sample the humidity sensor as fast as possible, i.e. keeping the ADC running continuously, evaluate its result continuously and control the valve if necessary. There would be no pulses involved.
Of course, if you’re an experienced programmer and/or engineer then you know that soil humidity doesn’t change very quickly, so you’d put a timer on it to generate interrupts (pulses) to check the humidity once every minute or so, and let the microcontroller do something else the rest of the time, or put it in sleep mode to conserve power. But if you know that much about electronics already, then you’d probably want to try coding instead of building your application with XOD.
TL;DR: for many youngsters, students, hobby users etc. the update-on-pulse concept is not the most logical approach to building an application with blocks in a visual environment like XOD.