How does one create a more complex dapp that needs features like recurring jobs, generating random numbers, trigger e-mails, etc. (without using something like oraclize).
What's the flow for an app like this? You write the app in a programming language like Go, deploy your own node and interact with your deployed contract(written in solidity) through RPC? That way you can send a random number to the function/contract from your off-chain backend that's then used in the contract?
Does it make sense to keep on the blockchain only the the features that need to be transparent to the users and have the rest of the app functionalities on a backend like Go?
Firts of all, I think that you ask too manu questions and actually, you don't have very clear what you want. However, I'm going to answer them.
Developing more complex Smart Contracts.
It dependes on your case of use