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
Seems to be fixed in 15w34d