コピペを回避するには、基本的には自分でGLSLのコードを弄って
共通に使われる関数を複数のGLSLのコードに自動的に配置するような処理が必要になる。

そこでオススメなのがboost::waveだ!
waveはC言語で使われるプリプロッサを実装したものだが
waveに付属の以下のサンプルはGLSLのコードを処理できるようになっている。
wave\samples\custom_directives
このサンプルコードを使えばヘッダファイルに共通処理を書いて
#include "common.glsl"
みたいな事がGLSLでできるようになる。

ちょっと話は変わるが、最近Revisionという大きなデモパーティが開催された。
http://revision-party.net/
ここで作品をダウンロード可能
http://pouet.net/party.php?which=1550&when=2012
ここのスレのみんなはメガデモに興味ないかい?