It really is best practice to not use physical IO for an HMI. I always map, I started doing that years ago. If you do a lot of work as an integrator it will save time in the long run (end users - maybe not so much). I might do one project in CpLX, the next CLX. If I map, I simply change the mapping file, the rest is the same. If I used physical IO or alias, I would have a bunch of errors and things to fix.
A suggestion on the way you explained alarming, I would do a buffer. The HMI would read the buffer. That way the HMI won't "pick up" the occasional clearing and setting. Even with a slow poll rate, the HMI will eventually see the change. The buffer is always the actual result. Just my two pennies.
Not sure if you read Archie's comments, but it is a known issue for reading physical IO, regardless of local or remote. So, for now you will have to use mapping.