hey girl, don't be so down. I was glad to see your concerns and hope that as a mom I can offer some advice. I have a 4 year old, too. my childis a pain in the rear, and I am proud of his mischevious ways. you know that a spirited baby is a smart baby, this child doesn't agree with your boundries. when we don't agree with authority we vote, our children aren't that complicated, so they let us know the only way they know how.
you are doing great by talking to your child, that teaches your child how to replace bad behaviors with good behaviors. however, you may need to try some new tactics to show him who's boss. yes, your child can have an opinion, yes, you should show him he is valuable by discussing his opinion, but NO, he cannot react in such inapropriate ways when you, the main authority, sets the rules.
I tried a strategy that I discovered while watching dr. phil, and it changed my son.
try this,
set aside two hours or so, and take your child somewhere fun. on the way, explain to your child that if he misbehaves you will have to leave. pretty much, set your kid up to be a pain in the butt. when your child misbehaves, stop. get down to his level and say "if you repeat this behavior, we are leaving." when he does it, grab his butt and leave. you may have to do this several times.
it doesnt matter if the store is your problem or not, if you do this consistently, your child will see that you are serious, and behaviors will change.
please take may advice and use it. you can apply the basic principle of this tactic to almost any situation.
I promise it worked for me, and I have raised six children. your child is a gift from God, and it is your obligation to raise him to the best of your ability. I know it's hard to deal with an overly inteligent child, but if you mold his behaviors now he will be a much better person for the rest of his life.
good luck