途中で宣言するのはやっぱりありか?

たしかDelphiかなんかの参考書に、どうしても途中で宣言したくなるようなことがあれば
その関数が必要以上に長く・複雑になってるから
別の関数に分けられないかどうか考えろって話だった希ガス