今とある本で、「スコープ演算子」という章をやっています。:: と static の使い方を説明しています。
staticで宣言されたメソッド、プロパティなどは、オブジェクトではなくクラスの持ち物と書いてあります。

Circleクラスを定義します。その中に public static $color; というプロパティ宣言と
public static functions setColor($color); public function getColor(); public __get($prop)というメソッドを定義します

そして オブジェクト生成で$redCircle = new Circle();とします。
そうすると$redCircle->getColor()とするとプロパティは存在しない(static宣言されているのでオブジェクトの持ち物ではないから)
とちゃんとなるんですが、static宣言したメソッドsetColorは使用できてしまいます。
$redCircle->setColor($color);とすると$colorプロパティに値が設定されてしまいます。
ちなみに __call($func, $param)メソッドを定義してみてもエラーメッセージは表示されませんでした。

なぜ、static宣言された、プロパティの場合だとオブジェクトの持ち物ではないことになり(プロパティを使用できない)、
メソッドの場合だとオブジェクトの持ち物になってしまう(メソッドをしようできる)ことになってしまうのでしょうか?

冒頭にも書きましたが、static宣言されたプロパティ・メソッドはクラスの持ち物だと書かれています。
static 宣言されたメソッドがオブジェクトから使用できるのが納得できませんし、ましてや$colorプロパティをその中で
使っています。全然、理解できません。。お願いします。