No. HookScript is what you use to have your script handler run after the original script handler. If you use it on a frame without an original script handler, it's not any different than SetScript. Both will cause your OnEvent script handler to run every time your frame receives an event -- including in combat.
Forget about hooking. Hooking is only used to modify the behavior of existing code that's not part of your addon. If you ever think you need to hook your own addon's functions/scripts, you're doing something wrong.
That's now how hooksecurefunc works; you must specify (1) the name of the function you want to hook, and (2) the function you want to be run after every time the hooked function runs. It isn't a method for calling an arbitrary function once.
When are you calling the first chunk of code you posted? Preferrably, post the whole file it's in.