Ad position independent a s pomocí relokační tabulky... OMG. Position independent code (PIC) je takový kód, který nemá reference na absolutní adresy, a je možné ho zavést na jakoukoliv adresu (pokud zanedbáme alignment). Relokační tabulka se ho netýká.
Problémem v tom, že Intel x86-32 nemá RIP-relative addressing, takže má výsledný PIC dost mizerný výkon. x86-64 má RIP-relative addressing, a Windows ho používá.
Relokační tabulka se týká něčeho úplně jiného. Kód není position independent, a při zavedení se může relokovat. Ve Windows mají DLL preferovanou adresu, na kterou jsou předkompilované a kam se preferuje jejich zavádění, pokud (není použito ASLR) && (v address space procesu je místo). Pokud (je použito ASLR) || (místo pro DLL v address space procesu není volné), knihovna se relokuje na jiné místo v paměti. Na x86-64 se používá RIP-relative addressing, takže je těch relokací minimum.
Ad nejlépe lineárně za sebe - to je fakt super nápad. Slyšel jste někdy o buffer overflow, return-to-libc a ASLR? ASLR vyžaduje nějakou entropii adresního prostoru, nikoliv naskládání knihoven za sebe.