I don't really see the connection between the use of pointers and a component based architecture.
suppose you want to move the entity John
In 3dgs you attach an "action" to John
Action contains the c_move function with the parameter "me" which is a pointer to the entity John
In Unity you attach a script to John which contains the function
transform.Traslate()
The pointer to john is implicit
Now suppose that you want to move John only if he is close to Bill
In 3dgs you must have a pointer to Bill in John's action
In Unity you call the pointer :
bill = GameObject.Find("Bill");
in John's script
Dont you see any similarity between 3dgs and Unity ?
Dont you agree that the following code is much cleaner ?
Start()
John = new Actor()
Bill = new Actor()
Update()
if( dist = John.position - Bill.position < = ...) john.Translate();