if you had root, you could edit some of the VM heap sizes and minfree values to keep the restarting to a minimum, but the device is still a bit short on RAM to fit them all. it gets worse when it's got less than 50MB remaining but even with 100+ depending on the apps and their individual footprints it may be less laggy but some apps would restart.
the reason your phone is faster after a reboot is because nothing is running yet. when the apps start fighting over which app gets which amount of insufficient memory, it will start lagging again. there's really nothing you can do except to be aware of how much RAM apps can use and how many apps you can install and share with them all. i had a lower end phone awhile back this year, and it only had 256MB RAM. it took ten apps before it started being unstable, slow, and laggy. i had to hack it to death via root just to make it load a max of 5-8 apps, often those i used every day. the rest wouldn't start up unless i manually tapped their icons as i had adjusted Android's built-in task manager to only allow x amount of RAM to be used at one time. with lower end devices, Android often makes a mistake when it tries to clear out memory on its own. third-party launchers seem to be the first to go, and causing the redraws, even some 'app not responding' dialogs, because third-party launchers don't ever get a higher priority even when you use them often, which is odd but true. Go Launcher and ADW for example are set at a priority level 6, which means when Android needs extra memory for some app (such as Facebook) it will kill the launcher before anything else. you won't notice that until you back out and sit staring at a blank screen for a bit.
The worst case scenario is when Android simply cannot allocate enough memory and sends a call to the kernel to 'panic' which means it will reboot the phone by itself, usually leaving some type of log with the warning being 'Panic occurred: out of memory'. this is known as an 'OOM panic'. again, if rooted, you can tell Android to not do that when such a condition occurs, and the condition often does if you use tons of apps, but the result is often a dead-freeze or another more important part of the OS crashing, like statusbar.apk.
Another root trick and one i found most successful in keeping even the oldest device fluid, was to disable certain 'background receivers' inside of individual apps. a 'receiver' is a part of an app that normally wakes the app up and makes it run in background mode to, say, receive email notifications, notify you of Facebook messages, or Play Store letting you know certain apps have updates available. another type of reciever is a 'download receiver' and Play Store uses this one to download updates if you got auto-update apps enabled. these recievers will make it appear that an app is running, and when it exits, and another receiver wakes up, the app will appear to be 'restarting'. that number where it says 'x background services' is often a reciever.
disabling the receivers you don't really need (say you can often open the Facebook app to see anything new, vs. allowing Facebook to place icons in your status bar) can free up just enough RAM to keep things fluid without killing the app, and helps immensely in lower end products. keep in mind however, if you did this, you may lose some functions of the apps. if you for example disable the reciever for Play Store's 'recommended apps for you' widget, you may get a blank space where apps they think you'll like would display when you open Play Store.