This a pretty rare issue, which also happens with trees. I'm pretty sure it has something to do with how structures like village houses and trees are generated and separated into different chunks.
Update: It turns out that the horse had not disappeared, but teleported about 50 blocks away. Strange...
Remember kids, when developing a building game, always check whether or not there is already something there before you generate an object.