Good! If you get in the habit of taking a peek at the logic whenever you get curious about how something works or if something is possible, you will learn a lot. Even if you don't find what you are looking for, you will get more familiar with how the project is structured and you will find it becomes easier to navigate and to read over time.
You can do a whole bunch of checks to accomplish a block of logic, but just because you can see the logic in your head being possible doesn't make it simple. The more state you have to track, the more bugs you will have. Your code will become increasingly complex and less readable as you patch that out. You want the next guy who maintains your code to want to hug you, not shank you.
Internally, they probably aren't checking every tile that you step to for permissions every time. They probably have a callback set up to have whatever manages player movement inform whatever manages deed security that a check is relevant to run. You could piggyback off of that a bit by passing the flag about auto travel and doing the comparison just in part of the callback. You don't need to be looking backwards in time through logging to figure out if you should be doing something now. You don't need to move the player, you just need to stop them and maybe present a warning on starting the trip. You don't need to check what guards should be responding to, let the existing logic handle that. If you can keep the server side logic to "if they are gonna do the bad, don't let them do the bad" and then make it the client's responsibility to convey why, the server won't have to do the legwork and can get back to servicing the next operation for someone else.