Hi ngrison, and anyone else with this issue,
I know this is an old topic, but it's new to me because I have been experiencing exactly the same problem with my copy of Visio 2013. Whilst I have come across others with seemingly random behaviour of the POINTALONGPATH function, your post here is the only one I have read which describes my issue exactly.
Another note to add to this is that this issue is still present in Visio 2016, and therefore presumably 2019 as well, but I cannot confirm this.
Also, I have noticed the exact same problem with the PATHLENGTH function.
Oddly, on a single drawing with say, 50 smart connectors using multiple labels, about a third will not be showing their end labels until an end of the connecter is moved in some manner, causing an event to force recalculation of the aforementioned functions. I can then save the drawing with all labels displayed, but upon re-opening the exact same connectors will be missing their end labels, which due to the logic in the formulae just means these functions need to be triggered again.
In case you're wondering, the difference between a working connector and a faulty one cannot be found on the drawing page, or in the ShapeSheet; they appear to be identical, except they have different ID numbers.
This problem is repeatable across numerous computers using either 2013 or 2016.
Have you found the cause and a solution yet?
For my own work I had to either find a fix or a workaround, but either way I still needed to use these functions.
So after much debugging and manually triggering the functions in a wide variety of order throughout the faulty connector's ShapeSheet, I then spent a lot of additional time trying to learn how the functions were actually triggered, without much success I'm afraid, but due to my very limited experience in coding with C and VHDL, I did get the feeling from what I've been reading that this problem might be caused by a memory reference issue within Visio. So I had a thought to try deleting the problem row and creating a new row to create a new reference to a memory location, and this worked. So then I tried renaming the same original problem row (in another copy of the faulty drawing) to something else, and this worked as well. So then I tried just renaming the Row which holds the offending function with it's original name; i.e. without changing the name, and it worked as well. So now I appear to have fixed the problem permanently for that connector; for good

After further investigation and testing I found that I actually needed to rename three rows in the ShapeSheet for this particular connector; two had a POINTALONGPATH function, and the third had a PATHLENGTH function. Each of these three rows were returning values of zero upon opening the document, which was wrong. However, after renaming the rows, saving the document and re-opening, they worked reliably from then on.
Just to be clear, I renamed User.EndPnt to User.EndPnt, and didn't touch the formula in the Value cell. In fact, all I had to do was copy the label and simply paste it over itself and problem gone.
So I whipped up a routine to delete and replace the same offending rows in all connectors throughout the drawing, and I haven't seen the problem since. I have since updated the master connector in the stencil and the problem has not reappeared (yet).
I think during my development of the formulae and code behind the shapes I'm building, using ideas and snippets from this forum, John Goldsmith's (where User.EndPnt came from), David Parker's, and occasionally others including MSDN (thanks to everyone for your dedication to smart drawing), it looks to me like I have somehow corrupted the internal references to some of the connectors' User-defined Cells, preventing them from being processed upon opening or refreshing the document page. If this is the case, I expect to come across other hard to explain bugs, and if I do I'm now hoping to have a potential solution, or a direction in which to start looking.
Hope this helps someone.
Craig