The SBV->C compiler always "flattens" the functions, i.e., sequences of elements will be expanded as the C-function is produced. In idiomatic C, you would instead pass elements in arrays. So, while we can deal with arrays implicitly, the translation is not nice, it leads to signatures that are unnecessarily complicated and not idiomatic-C.
To implement this properly, we need a Haskell datatype that can represent the size of the elements in its type, similar to Cryptol's sized sequences. There is no native Haskell type that can do that, but there are some packages in Hackage that use type-level tricks to encode them. (In particular the type-level library http://hackage.haskell.org/package/type-level.) However, type-level only supports naturals up to 5000 nicely (D0, D1, .., D5000), larger numbers, while possible, are cumbersome to write. Also, the 'D' prefix is just unsightly, and being a library it's not as seamless as one would like.
The other alternative is to wait for type-naturals extension of GHC to become available (http://hackage.haskell.org/trac/ghc/ticket/4385), and use that feature instead, which should provide a better user experience. The downside of that is that it isn't clear when type-naturals will be part of GHC.
In any case, the latter option seems to be the best way forward, although we will have to delay the implementation for a while.