There's two ways to initiate ports in Rebol/Ren-C currently—1) by URL/File datatypes and 2) by block [scheme: 'thing ...dialect of your choice...]
. If by overriding :
you mean something along the lines of KWATZ!, that'd be a huge language design decision. For now ports are the closest thing you have to a custom datatype—I think there's another way but it needs to be fleshed out more as an approach.
I'm not quite sure what you mean by this—do you mean that going the port direction means your custom values don't have their own methods? If that's more important than being able to use the standard verbs (per your example, PICK, LENGTH, INSERT, REMOVE, etc.), wouldn't plain objects work better instead? With ports as-is, you get to define the meaning of these verbs, so if you say insert mysound [...random data...]
you can throw an error if it doesn't conform to your specification.
Would be curious how this compares to Javascript's approach...