If you save a reference to a game object in the scripting language, then if the object is removed from the scene by another system, the object pooling system will re-use the old object resulting in your script holding a reference to the wrong object! Will not be fixed to version 4.
Example, I was building a tower defense game and each tower would hold a reference to the enemy they were shooting at. When the enemy took damaged and died it was removed from the scene. The towers reference to the enemy would sometimes point to some new random object in the scene. There are workarounds, but wtf.
There is also some cyclic reference bug in the scripting language that is impossible to predict or work around.
And then there are little things, like there is no selection outline around objects in the scene, makes it almost impassible to build a complex scene. Not a bug, but a weird choice.