もう何言ってるのかワケワカメ。

>は?C言語知らないの?
>引数で渡してればその関数から出てきたときに変更されたかどうかわかるじゃん

でも結局、どんな値に書き換えられたかまでは分からないわけで。

一体、
hoge_update( &hoge );
の何に問題がある?
なぜ呼び出し元がhogeの何が更新されたかまで一々知る必要があるんだ?
知って何になる?

>完全に内部で終わらないでしょ
>どうやってほかのタスク(笑)と衝突判定とかするんだよとね・・・

それは呼び出し元でやればよいだろ。