excellent question, several possible answers.
imho -or If I was King and ruled by stroke of a pen.. perhaps:

If search = "walamart" and another non-walmart company is placing ad above organic result, then a warning would be prominent in the ad displayed, and when you clicked it - an interstitial warning would tell you that you are going to a different web site than the one you believed to be shopping for most likely.

- several reasons, 1 - the faint color change google says clearly marks ads is a friggin joke, everyone knows it, and adwords laughs all the way to the bank while the tech face says "look at our perfectly calibrated large screen blah blah" (not the average person's cheap laptop) - 2 - malware has been installed how many thousands of times when I tell someone to update they flash, they type flash into google search (not url bar) - first result is trusted - and it's a malware site. Seen it happen dozens of times myself, know it's happened lots more. 3 - fake news - or whatever else, this is basically saying that many other devious things can be done with ads beyond neighborhood markets battling for eyeballs.

If search equals "walmart diapers" - I think it is fine to show competitors as long as they are clearly marked as such. It gets complicated if the results show 5 competitors with pricing like google shoppiung kind of style - and if they are all paid results - and they not be accurate, and what IF walmart would not pay to be listed there, and it was at the top - is this right?

Some people might think the search they did returned no results and instead google was showing results that were more likely to return an actual document. Now this gets serious in my mind, we could joke that people would know better.. but what if it was amazon echo or something else.

Lots could / should be said about these things above.

Also, walmart should be educating web site visitors, just as other businesses should - explicitly show them that the top results from google (and others) are almost always paid results. Show them that these could be conflicts of interest, and that clicking on them costs money.

Being lazy and typing walmart into search box instead of url bar is giving google money, and wasting time, and raising your costs at walmart and other places - completely unnecessarily - and most often without the consumer having any clue.

I've seen it too many times with so many different types of people. They do not know these things, and it's costing us all. We know that google knows / sees this, with the opaque bidding for adwords cost thing - no one knows like google how much this is screwing how many people and millions of dollars.

Yes, I do think walmart should let go any and all ads that have "walmart" in the search parameter, also "wal-mart" and "wallmart" etc. They should not have to pay for those results, and they should educate the consumers about why they will never show up in a sponsored ad box when they are searched by name, and how consumers would be leery of any company / page that does show up there.

It is wasteful, it takes advantage of the ignorant consumers, and the companies that are essentially being held hostage by engines who at one time earned so much trust with the public that they will now search for anything, click the first result, download and install new software without reading more than "google first result".

So many patterns have emerged to encourage this wastefulness, cramming small screens with lots of ads and pushing more and more organic results away - it's greed run rampant at the expense of all of us who don't own stock in the alphabet.

imho