I think a definition would exclude µC, dsps asics, fpga, etc. While most of those have the ability to program themselves, not all programs support such features.
And for external programming you need programming devices who would also need physical interfaces where no standard connector exists.
But a definition for general purpose computing devices wouldn't be harder than to craft legislation that requires my banking app to run on a certified shitty app environment.