お世話になります。
初めて投稿させて頂くexceptionCatcherと申します。
先日RC版のSmarty3.0RC4を試してみました。
(WinXPのXAMPP/PHP5.3.1環境で試用しました。)
皆様と情報共有できればと思い、気付いた点等を記します。

(1)改善された点
Class定数がSmartyテンプレート側で使用できるようになりました。

(2)改悪された点
register_modifier機能でNoticeエラーが発生しました。

※簡単に補足します。

【PHP側の定数定義クラスファイル】
class ComCst{
const MAX_LEN_MAD = 256;//メールアドレス最大長

}

【PHP側のユーティリティ関数定数クラスファイル】
class ComUtil{
//htmlspecialchars関数では半角スペースと円記号が変換されないので
//各々を&nbsp、&yenに置き換える関数です。
public static function hsc($val){
$s = htmlspecialchars($val , ENT_QUOTES);
$s = str_replace(' ' , ' ' , $s);
$s = str_replace("\\" , '¥' , $s);
return $s;
}

}

【PHP側のSmarty操作ロジック】
$smarty = new Smarty();

$smarty->register_modifier('hsc' , array('ComUtil' , 'hsc'));
$smarty->register_modifier('hsc' , 'ComUtil::hsc');
$smarty->assign('test_msg' , 'A△△△B\C');//△は半角スペースです。
$smarty->display('test.tpl');
exit;

【Smartyテンプレートファイル(test.tpl)】

<input type="text" name="in_mail_adr" maxlength="{$smarty.const.ComCst::MAX_LEN_MAD}" ・・・

テストメッセージ:{$test_msg|hsc}


Smarty2系ではテンプレート内からPHP側でdefine関数で定義した定数は参照できましたが
Class定数が参照できません。ところがSmarty3系では
{$smarty.const.ComCst::MAX_LEN_MAD}
のような記述で参照できるようになりました。
これが改善された点です。

Smarty3系ではregister_modifierでNoticeエラーが発生します。
自作hsc関数は期待通りに動作し、
A△△△B\C
という文字列が
A&nbsp;&nbsp;&nbsp;B&yen;C
変換されるのですが、なぜかNoticeエラーが発生します。
(注)テンプレートファイルの
{$test_msg|hsc}

{$test_msg|htmlspecialchars:$smarty.const.ENT_QUOTES|replace:' ':'&nbsp;'|replace:'\\':'&yen;'}
と同じことを実現するものですが、冗長になって読みずらいので
register_modifier機能を利用しています。

【その他】
Smarty3系が正式リリースされれば、そちらへの乗り換えも検討しようと思っています。
もしSmarty3系におけるregister_modifierの扱いをご存知の方、あるいは
RC版を試用されて上記以外の2系との違い等を認識しておられる方がおられたら
アドバイスを頂ければ嬉しいです。

以上ご参考までに。