What is the correct phraseology for changing the runway of a landing clearance?
The phraseology was slightly incorrect, this is from the FAA's ATC Orders (section 3-10-5):


  3−10−5. LANDING CLEARANCE
  a. When issuing a clearance to land, first state the runway number followed by the landing clearance. If
  the landing runway is changed, controllers must preface the landing
  clearance with “Change to runway.”
  PHRASEOLOGY−
  RUNWAY (number) CLEARED TO LAND.
  Or
  CHANGE TO RUNWAY (number) CLEARED TO LAND


That means the ATC instruction should have been:


  American 2293 Heavy, change to runway 28L, cleared to land


All the correct information was in the transmission you quoted, it was just given slightly out of order. But that could easily be an issue for a pilot who's in a high-workload phase of flight and it's probably exactly why the ATC orders say that the words "change to runway" must come first.

I've had ATC change my landing clearance a couple of times but the controller always asked me first if I could do it:


  Tower: N12345, cleared to land 21L
  N12345: Cleared to land 21L, N12345
  [A few seconds later...]
  Tower: N12345, are you able to switch to 21R?
  N12345: Affirm, we can do that, N12345
  Tower: N12345, change to runway 21R, cleared to
  land


However, landing a C182 at a class D is a bit different from landing a heavy at SFO; I assume the controllers there have less time to talk so they may simply have changed the clearance and expected the pilot to say "unable" if necessary.