Is it safe to register a taxonomy without using any hooks?

Your code without using the init hook use also a hook, but not fired from your source. A last it was fired from the include of the your theme, which was loaded in WordPress. It is much bad for your control. If you use a hook, then is the include from your source on your control, you choose the hook. If you will leave this open and the core of WP change the order or other points of the include of theme, maybe you have problem, like the function will never work. Also it is bad style, that you not catch your source inside a wrapper, like a function for the control. Is also easier to read, fied on this hook, this callback – your function.