void main()
{
hash("AAA"); printf("%d\n",rand());
hash("AAA"); printf("%d\n",rand());
hash("AAA"); printf("%d\n",rand());

hash("BBB"); printf("%d\n",rand());
hash("BBB"); printf("%d\n",rand());
hash("BBB"); printf("%d\n",rand());
}

実行結果
828805346
828805346
828805346
746277705
746277705
746277705

ある文字列のハッシュ値を得た直後に rand() を呼び出すと、常に同じ乱数値が返ってくる。
という副作用が気になりました。