If a function does all proper checks inside, should I check everything before calling it, or better not? Is security redundancy considered a good practice?
Example (in a sort of C#-like pseudocode with by-reference arguments passing):
doSomething(vector v) {
...;
v.clear;
useCleanVector(v)
}
useCleanVector(vector v) {
if(!v.isClean) v.clear;
...
}