Ah, but a Script is a Rule. It’s just a special type of rule that only as a single Script Action and no triggers or conditions. And really the only difference is a Script has the Script tag.
It’s as good a reason as any. Keep in mind though that you will have to pass any “arguments” to the Script by adding them to a Map and passing that Map to runNow as demonstrated in the last three lines of the example code you have above.
Ideally you will want to adopt the Helper Libraries or put all the Framework stuff into a library though so you can just import it and just call “runRule(“uid”, true, map);” without littering all your scripts and Rules with the same seven lines of code over and over. You can’t do that through a Script though.