I'm not surprised people are already bored and restarting. That tends to happen with Pokemon games. I find I usually restart after I beat all the gyms. I don't like the grind that happens between the last gym and the elite four.
I've always felt the Pokemon Games needed something to stop these boredom restarts. Gym Leaders should be able to be rebattled after you get each badge. Each gym leader's pokemon gets better after each new badge and they can be rechallenged for special TMs. Make it so your rival can always be found at his house, and you can battle him once a day. His Pokemon will be a level depending on how many badges you have.
After you beat the elite four, you can activate 'Ash mode' and start the game over with all of your old pokemon staying with the professor. You'd be playing the same game, but would be able to choose a new starter. You wouldn't be able to retrieve any of your other pokemon until you've gotten all your badges. I think this would give players a way to restart and test out new pokemon without having to lose all their progress with their past pokemon.
MUCH more trainers in the game that want to trade. Maybe even have a place where you can go that has multiple trainers that want to battle, trade, make poffins, and berry mixture things. Each day, the trainers would have different berries, pokemon, and would have other pokemon to trade.
Bring back dive. That could unlock a brand new area in DP.
Legendary Pokemon should play a bigger role throughout the game. Possibly have Cyrus challenge you upon meeting you for the first time, and Uxie help you win in the battle, leading to Cyrus leading to wanting to capture it for revenge.
All legendary Pokemon are level 100 and can't be affected by master balls. You have to have the best pokemon to capture them, but are given multiple chances. They only show up on certain days (certain months [certain seasons]).
I am sure there are other great ideas out there.