1) 10 isn't the minimum string length. You can use 1 if you want.
2) Yes, the return value of the method must be string, because it's actually a piece of SQL code.
3) You can use enums; you're just doing it wrong. If you look at your own screenshot, you'll see Enum Unmapped Field, which is what you need to use. The method will still return a string, as discussed in the previous point. You can find many examples in the standard application, e.g. SalesOrderLineCDSV2Entity::areTotalsComputedColumnDefinition().