>That makes it more difficult to be useful within Astyanax, which expects specific types in its serializers

The current implementation is something like:
    @Override
    public ByteBuffer toByteBuffer(Object o) {

And we do type checking inside the method.

> Remember it is Astyanax internals that eventually makes the call to toByteBuffer() or fromByteBuffer(), not us.

We explicitly call those in the current code. 

       mutationBatchWithRow.putColumn(
                                rollupEntry.getKey(),
                                NumericSerializer.get(destCF).toByteBuffer(rollupEntry.getValue()),

I am fine with status quo. Just wondering if we can reduce the verbosity of doing NumericSerializer.serializerFor().toByteBuffer().