The short answer is no. For the canonical example of why just take a look at native post types. They are registered twice during each page load:
- Quite early because of backwards compatibility reasons and plugins possibly expecting them to exist.
- On
init
because now locale things are actually loaded and post type definitions can be properly translated.
So long answer is — you can make it work, but you are in a world of pain and poor performance to make it happen properly. Just don’t. 🙂