I do not know how do I successfully separate rendering from loading, load only once without writing messy code.
Your attempt to avoid messy code has created messy code! Trying to render inside a loading function is a terrible idea, as is having to use a goto statement. You need to seriously rethink your what you're trying to achieve.
Normal practice would be to load everything at application startup, then render what you need.
It was not my idea. I want to load my objects ONCE, and be able to render them when needed. I just have no idea how to separate those two. Would you be so kind to help with that? I'm at a loss because if I separate the two, I can do the loading but then the variables that are needed for rendering go out of scope.