There are two separate issues mixed up here. One is codeshares. The other is alliances.
In a codeshare you are a passenger (customer) of the airline whose flight number is on your ticket. You should be treated as such in every respect. If they chose to buy space on someone else's airplane instead of flying their own, that's their business decision. It should not affect the passengers.
The fact that the flight is operated by another airline should be disclosed up front (and in my experience always has been). Other that that, your elite status should be respected and you should not be able to tell the difference. When I've been on a codeshare the non-operating airline has had a flight attendant on board to make sure this happens. Even if this isn't universal policy, the gate and cabin crews should know that they're in effect pretending to be two or more airlines on that flight.
Alliances are something else. When, as an AA frequent flyer, I fly on a oneWorld member airline, I know I am not on AA. The benefits of AA elite status are defined in oneWorld materials. There is no reason they should match what I get on AA, other than my desire to get as much as I can and oneWorld's need to market its alliance effectively against the competition. If a partner airline does not give me the benefits oneWorld says I should get, I have a right to complain - but that has everything to do with complaining when I don't get what I'm promised, and nothing in particular to do with alliances.
From a business point of view, alliances make the most sense when the airlines do not fly many overlapping routes. Code-shares make sense only when airlines fly, or would like to fly, the same route. Many code-shares involve airlines that are not alliance partners. They may be unaligned (witness the Sabena flight I'm taking Thursday for Delta credit, which is operated by Virgin Express) or even members of competing alliances. The motivations behind the two are different. Neither is an attempt to make up deficiencies in the other. They serve different purposes: code-shares are primarily for operational reasons (an airline wants to fly a route but can't fill a plane) while alliances are primarily for marketing reasons (an airline wants to promote itself as having a global presence).
Note: edits were to correct trivial typos. Content is as originally posted.
[This message has been edited by Efrem (edited 08-31-1999).]