1. There is a lot of complexity in building, deploying and maintaining software
2. There is a lot of complexity in understanding a domain and figuring out precise business logic
Often, (1) and (2) are known by different people, from technology and business functions. There is a communication overhead.
We can eliminate the communication overhead if (1) and (2) are known by the same person. But learning to code is hard... so if we make the programming easier (or even "no code") then people who know (2) can easily pick up (1)!
Ultimately though, I'm not convinced that (1) will ever be easy...
Stuff like this is where a lot of no-code stuff falls down.
I have always been able to find a way around when implementing complex business logic.
A very peculiar use case I had to solve was for a parking slot booking app - limited spots available, one spot can hold either one large vehicle (car) or six 2-wheelers.
So essentially it became like how you mentioned-> if x=car then parking spots available can only be N choices. If x = bike, then spots is 6N or 6(N-1) if someone booked a spot for a car. If spots remaining = 3 then x can not be Car.
Took me a couple of days to get it working but i was in the end able to get a working app built purely with no-code on DronaHQ.
Disclaimer - I work with DronaHQ.