This relates strongly to:
Projectiles use the tags xTile, yTile and zTile. However all these values are shorts. The limitation of shorts is from -32768 to -32767 (both included). This means shooting an arrow in the block (0|50|32768) will overflow the zTile so it becomes -32768.
I made a short video which shows really good what effect that has.
Summary of the video:
I shot an arrow in (0|55|32768). The zTile value became -32768. I went to (0|55|-32768) and broke this block (multiple times). After that I went back to (0|55|32768) and the arrow felt down from the block.
Note: It rather seems like unloading the chunk caused the arrow to fall, because it probably couldn't get the block information of (0|55|-32768) as this position wasn't loaded at that moment
Note: This does not affect ItemFrames or Paintings