(This code has one too few right parentheses.)
I don't see any big problems with this approach, especially if you want to avoid writing your own explicitly recursive solution. I don't think you need to do quite so much reversing if you add the new value to the beginning of the second part rather than the end of the first part. If you write your own function you can avoid some of the duplicate work. You might want to look at List.revAppend
, which is intended for cases like this.
As a side comment: a list is not a particularly good data structure for updates at random locations.