Estilo Erlang - coincidencia entre caso y función.

Llegué a la etapa en la que escribí bastante código de Erlang ahora, y puedo ver un cierto estilo (malo o bueno) en la forma en que lo he estado escribiendo. Este lenguaje en particular en el que me gustaría opinar: ¿es mejor (más legible / más rápido / lo que sea) convertir los enunciados de estilo de caso en función de coincidencia de patrones?

P.ej.

Comparar (un ejemplo artificial)

<code>case {Size > 100000, Type} of
    {true, ets } ->
         %% Do something to convert to dets
         something;
    {false, dets} ->
         %% do something to convert to ets
         somethingelse;
    _ ->
         ignoreit
end;
</code>

con

<code>...
maybeChangeStorage(Size, Type)
...

maybeChangeStorage(Size, ets) when Size > 10000 ->
   something;
maybeChangeStorage(Size, dets) when Size < 10000 ->
   somethingelse;
maybeChangeStorage(_,_) ->
   ignoreit.
</code>

Prefiero este último en la mayoría de los casos, pero estaría interesado en otra opinión.

Respuestas a la pregunta(6)

Su respuesta a la pregunta