Scenario A

Message 1
A Spreadsheet calls for an updating of values due to a change in its cells. (It informs itself, in fact; during runtime, these are the same object, as Spreadsheet is just an abstract base class of many other types of spreadsheets).
Message 2
The Spreadsheet responds to itself after updating its value with a value: message.

Scenario B

Message 1
A Spreadsheet notifies its dependents when its value is changed. These dependents include the SpreadsheetViewContainer associated with it, and also any LinkedSpreadsheets that are linked to it.
Message 2
The LinkedSpreadsheet abstract base class calls for an update of value in its concrete instance (again, the same object at runtime, itself).
Message 3
The LinkedSpreadsheet instance updates its value with a value: message to its abstract Spreadsheet class (of course, the same object again).

Scenario C

Message 1
A Spreadsheet creating a linked cell spreadsheet during a type: with: cell: with: cell: method sends a sheet: message to a SpreadsheetCell to set its sheet instance variable.
Message 2
A Spreadsheet creating a linked cell spreadsheet during a type: with: cell: with: cell: method sends a cell: message to a SpreadsheetCell to set its cell instance variable.

Scenario D

Message 1
While updating its value, a linked cell spreadsheet queries a SpreadsheetCell's instance variables with cell and sheet messages.
Message 2
The SpreadsheetCell responds with its instance variables.