Early in learning to program grid modules I found that I needed extra logic to work with module position x and y values like 255, 254, etc. but then after some changes to my code it stopped being necessary as I was directly receiving -1 etc. Then yet more recently, after moving code around and maybe a firmware update, I started seeing 255 again and had to re-implement my conversion code.
I would personally expect negative values in all scenarios, and to never see 255.
This suggests to me that either this is varying across firmware versions and/or it is varying across module_position_[xy] call sites/scenarios.
Is the current mixed behavior expected? If so, why, and where should I expect to receive negative values versus 255, 254, etc.?