I'd say the tricky part is modeling
state transitions in REST. Rebooting is a transition between states as is logout.
Instead of defaulting to RPC, I like to try a few things:
1. Find some abstract resource that represents. POST to reboots to create a new reboot. In order to faithfully bring the resource into parity with the new state you've requested, the system reboots a machine. A GET to reboots should give you a list of previous reboots. Updating a reboot record might occasionally be necessary as well if an error occurred.
2. Model the state transition as simply another state. "Rebooting," for example, might be a state you can transfer that represents on -> off -> on.
I'll admit they don't roll off the brain as easily as calling the "reboot" procedure, but I also typically find that it brings a good amount of positives as well. For example, the ability to create reboots brings with it the ability to get a record of those reboots pretty trivially (if you're storing requests).