Then you must be doing something wrong - this has worked flawlessly for me from a 3GS to a 4S and now a 6. I've done it with multiple iterations for both myself and my wife, and replaced a broken phone as well. I've also assisted my parents with incremental upgrades mixing and matching devices as they were lost/broken, and hand-me-down replacements with 3G, 3GS, 4, 4s, 5, and 5s. I myself have well over 100 apps and not the same ones that my wife or parents are using.
As I said, any specific apps where this failed are most likely because the developer explicitly used the APIs that save data in a non-backed-up location. I had exactly 1 app where it didn't carry over using the backup/restore process, and that app was pushing 3rd party cloud sync as an add-on service.
Wifi locations and passwords should not be saved on device - that would be a security risk. All my notes and reminders have worked fine. PDFs again depend on the app and what the app developer decided to do for data storage. I know none of my PDFs in iBooks were lost and I never have used cloud sync for that. My text messages go back to 2011 when I still had a 3GS. The only reason they don't go back earlier is because I hosed my backups at one point when messing around with jailbreaking. Again, no issues carrying it forward between devices.