Nop, neither the bullet nor the ennemies are global.
Got quite a similar problem today, I created a function with one parameter.
The parameter is an amount of damage, choose randomly at the call of the function, the function substract those damage from the ennemy and add it to the score.
When I used "forget picked object", all enemy where damaged together. So killing an enemy will make all of them blow up.
When I use "remembered picked object", sometimes only one dies, sometimes all of them, sometimes it seems they take only a part of the damage (may be it's due to the time when they were spawned).
I think I don't understand at all how it's suppose to work.
Is there a way to access a specific object in python ? I know that the "Enemy" variable works as a list, but how can I retrieve the exact enemy (well, the index) concerned by the event ?