Pretty much this. Try to drag everything you can away from powerful tools (such as plain code) toward data : declarative languages (html/css), configuration...
Another example is pointer arithmetic. Modern languages avoided its use because it gave too much power (corrupting memory, accessing all the heap and stack) for the use of writing working software.
The drivers behind the rule are maintainance costs, because powerful tools are always more complex and error prone, and security, because reduced power means less ways of evil.