MoonWolfです。

> (1) || (2)ですよね。あと、

そうです。全部||ですね。

> sessioninitialized(cgi, session, 'hoge')
> は要らないんですかね?

セッションはnew_sessionで明示的に開始するので、sessioninitializedはあり
ません。
あえて、やるとしたらnew_sessionをオーバーライドして、
  def new_session(cgi)
    session = super
    session['foo'] = 'bar' # 初期化
    session
  end
とします。

セッションを自動的に開始するには、runメソッドをオーバーライドして
  def run(cgi)
    get_session(cgi) || new_session(cgi)
    super
  end
とします。

> expired_hoge(cgi, session)は、どのように使われるんでしょうねぇ。

有効期限は切れているけど、セッション情報は残っているので有効期限延長や、
session.deleteでセッション情報の削除などに使うつもりです。

-- 
MoonWolf <moonwolf / moonwolf.com>