M.F.
First time obedience is hard to achieve 100% of the time. We use "Love & Logic" and if you read the book or take one of the classes, you'll hear that they don't believe in warnings, simply for the reason you've stated -- the kids become trained not to obey until the second time around :-).
Also, I've noticed that obedience, and enforcing obedience, gets much easier as your child gets older. Things really are TONS easier with my daughter now that she's 4 compared to when she was 3.
There are a couple things that can help here:
What I've found helps the best with my kiddos is to take it back a step and begin ANYTHING with a prep talk -- and the kid has to be looking right at you, with no distractions. Before I enter the kitchen to prepare a meal I get them to look me in the eye, and I say exactly what steps will take place. They can't handle too many details, but something like "I'm going to get your breakfast ready. When I say "breakfast is ready" you may come sit in your chair." If we're going anywhere in the car I have them recite the "rules of the car" before I leave the driveway (no fighting, keep your feet in your own seat...).
If we're going to a friend's house, to Chuck E Cheese, the neighborhood pool, if I lay out what is expected beforehand, the whole experience is nicer and they are much more compliant. Just yesterday I took them to the pool and before we left the house I had them both look at me while I told them, "We are going to have fun at the pool, but we do have to come home after a while. When I say "Time to go!" I want you to get your towels and dry off. If you don't come home the happy way, we will not be able to have fun at the pool tomorrow."
Man! What a difference! Rather than carrying them both away from the pool kicking and screaming, they hopped out, grabbed their towels and floaties and walked to the car. My 2 yr old even said "We will come back tomorrow?" He remembered the prep talk!!
The other thing that should happen (I say "should" because I am horrible with consistency, but it works when I can stick to it) is there should be a consequence for not obeying right away. If you get a jar of marbles, he could earn marbles for doing good things, helping mommy, doing something nice for his brother, etc., but you take marbles away for disobeying. Maybe he has a treasured collection of cars and you take cars away every time. Then maybe give him a chance to earn them back each time he obeys right away. A good consequence is losing a playdate or trip to a fun place. We've had to cancel trips to the library because "I can't go to the library with kids who don't obey." So, instead of going in to play and hear story time, I just run to the book drop to return our books.
We like to say that the way to obey is "Right away, all the way, the happy way." My 4 yr old can recite this little rhyme now. You have to start with one part of it though and work on that for a while. So, maybe start with "right away" and even make a game of it.
In order to come when she's called (instead of dawdling or saying "but I'm doing___"), I told her that I wanted to help her remember to obey right away so she wouldn't get in trouble as much. Then I told her we could play a game so she could practice coming right away. She would stand in one part of the house while I went somewhere else. It was kind of like hide-and-seek, only I was pretty easy to find. When I was out of sight I called her name and her job was to say "Yes Mommy, I'm coming!" When she found me I'd tackle her with hugs and kisses. You could also give stickers or something. I know it sounds a lot like training a puppy, but...well...it IS a lot like training a puppy :-).
At any rate, the game worked. We're actually going to do some practice runs this weekend on getting into and out of the car. It's soo frustrating that it takes 20 minutes to load up in this heat, and that they dawdle and mess around when it's time to get back in the house! I'm hoping that some drills will smooth things out.
We also played a "stop and go" game to teach the kids how to STOP when we say STOP (we'd run back and forth across the back yard or up and down the sidewalk while taking turns yelling "stop" and "go"). I'm glad I did because just last week my 2 yr old was headed out into the street and was too far away for me to get to him quick enough. I yelled "Joel, STOP!" and he stopped in his tracks before he got off the curb.
Hope some of this helps!