Dialer and other application like terminal, browser, etc. are much more comfortable with specialized keyboard. I would start with simple one. Decision what app it was invoked for may be tricky. Saving target PID could help.
What are your ideas for other applications that need specialized layouts? Making a single layout / two layouts as general-purpose as possible is the current approach.
I do buy into the idea that we should have a separate dialer layout - but I think the way that should be accomplished is by extending / properly modifying svkbd to support multiple layers. Currently I patched in 2 layer support for the binary (svkbd-sxmo) but there's no reason why this couldn't be more fine-grained and you couldn't ship any number of layers you want in a single binary. If we did this then the user could jump between letters/secondary numbers & symbols/dialer layouts easily (e.g. this helps if you need to input a phone number into a website or something). Also there could be a commandline-flag to jump to a specific layer to start with which would satisfy the dialer layout to start use-case for calling functionality.
From my experience general purpose keyboard doesn't fit any particular application ;) If you don't mind redundancy among layers I wouldn't mind to merge everything into one binary. I was under impression every layer has to have the same number of keys. That is why I wrote dedicated keyboard for dialer. For myself I would definitely do "terminal" layout and "surf" layout. The latter would have less keys but they could be much bigger. The former must have "/,-,arrows,ctrl,tab" on top (IMHO). And of cause "dialer" layout could have bigger keys. I just don't know how to enlarge keys vertically. And just aesthetic detail -- arrow is much better as "<-" not "L". But for this you have to change Backspace to "<==" ;) Last but not least rotated keyboard could be quite different as well. ;)