This bug only work on custom spawner("SpawnData" Tag must be set) : most of adventure map are broken
The mob spawner will always spawn the mob at the same place(into the mobSpawner or block next to).
The bug come from here :
In the TileEntityMobSpawner class, in the updateEntity method, before the mob get Spawned, his random position and Rotation are set, but at the next line, a method set the entity NBTTag, and so set his position again but not randomly this time.
You can easily fix that by setting entity's position BEFORE setting his NBTTag.
This issue come from the same bug :