require() skips loading the second time because it records internally which file it already has loaded and therefore doesn't need to load again. This is because require was used to load libraries in early perl versions. Later use() replaced require() because it does much more.
But using require to start other scripts is definitely not as intended. As you have experienced.