1: this is the nature of XBMC. I am sure we can find a solution. Let me play with it.
2: Did you try just saying 'A'? I thought maybe the engine would be smart enough to map a to 1, but I guess it would be more likely to do 8. If you only had the range of 1-5 it might work.
Anyway, you *could* use logic for this, but a more elegant solution would be to use a payloadXML file. In the values column you would enter the digits, and for the phrases you could enter various ways of specifying (saying) the digit separated by commas.
eg:
1 | | 1,A,An,A single |
2 | | 2,A couple, A couple of, double |
3 | | 3,A few, Some, A trio of |
4 | | 4, A bunch |
.
.
.
This is a very handy technique, and also allows you to use other languages by mapping a phonetic phrase to a value. If you want to use xbmc direction keys it is expecting the exact values of (up,down,left,right) but to use french you would need to map (gauche -> left) etc.
Documentation is not really available for this yet but I think you can figure it out. If not let me know. I have some "real" work I need to do right now.