In gamemaker, your objects were stored in a list, and you could add them to the world freely. However, in construct, is seems to me that if you have an object that isn't created on start up(like a bullet), you must still place it in the layout. Although you can place it outside of the game screen, the object still exists in the game.
The "Destroy at Startup" attribute as mentioned is the way to go.
Even if you have a single bullet outside your layout and you set it to "destroy at startup", the bullet object is still able to be referenced in events. You can spawn more in your layout at any time, even though the first and only one placed in the layout was destroyed on startup.
While I haven't looked at the file link, perhaps try making your outer walls much thicker, make sure they are set to bounding box collision, and make sure they are either overlapping or perhaps touching neatly.