ということは、VRAM上に全く同じ命令データが
複数置かれることも普通にあり得るということですか

非常に無駄な感じがしますが、仕方ないのですね

これは仕方ないとして、せめてシェーダーのソースコード上では、
このようなコピペを回避する手段は何か無いのでしょうか
機能毎にモジュールに分けておいたソースをロードしてコンパイルし、
リンカがそれをひとつのシェーダーにリンクするとか