g_Entity is a list, the key to the list is the 'e' value which basically just means the entity number which the engine give it when you drop it into the editor.
[e] is basically saying give me the entry in the list with the key e.
plrinzone is a field in the list entry so g_Entity[e].plrinzone (or g_Entity[e]['plrinzone'] which is the same thing) is just accessing the plrinzone field for the specified entity. The field happens to be numerical, probably because at some point it is interfaced with C++ code.
So yes if you want to you can use a function to change it to a true/false representation but in fact that is exactly what == 1 is doing! '==' is a function returning true or false (~= is a function returning the opposite).
Depends on how readable you want your code to be, if you are happy reading g_Entity[e]['plrinzone'] == 1 and understanding what your code is doing then stick with that.
btw, global variables are very slow to access, every time you use one Lua has to look it up in the global name table which takes time. If you are going to need access to the global variable many time uin your code you can do this:
local Ent = g_Entity[e]
then in your code you can do
if Ent.plrinzone == 1
The local variable does not have to be looked up, in fact in many cases it will be kept in a register, so it is extremely fast.
Happy coding and feel free to ask as many questions as you like, I have read the book!
Been there, done that, got all the T-Shirts!