In what situations should I store data on my SD card? When it is best to put data on the internal flash? Is this simply used to expand the storage or are there some situations when using it for separate needs is important?
In general, apps these days are built to put as much as possible on the SD card in order to save internal space. Some apps require being on the internal card for programming reasons, however. Generally speaking you can let them manage themselves.
Otherwise you should keep all your own media, etc on your SD card so as to keep the internal one free for things like system caches, etc.