There's definitely more setup involved than most stand-alone emulators to get it running just right, but it's worth it. The timing/sync backend on Retroarch is just peerless, I'm very sensitive to input delay and no other emulator comes even remotely close. On most cores, I get only 3 frames of delay (before video output), which is great. Some cores have extra delay (Mednafen Saturn comes to mind, that has something like 5-6 frames of delay but it's getting better), but mostly it's awesome.
As for shaders, there's no default one, you get a library spanning different categories (CRT, de-dithering, antialiasing, etc), each shader usually comprises a multi-pass preset of multiple individual shaders, and parameters are very configurable. Takes some tinkering to find one that clicks with you - you can save per-core configurations too, I use different shaders for different cores. I prefer the one I mentioned, GTUv50 for consoles, as I used to play those on TVs over composite and prefer the softer look. However, for arcade games I use CRT-Royale, which more closely resembles an RGB arcade monitor. There are also very faithful shaders for portable systems.
Retroarch also has a robust skinning/library function, excluding the need for external library software like Hyperspin or some bullshit like that. All it takes is some patience to edit some text files, I made a lot of AutoHotKey scripts to parse my MAME roms into custom categories for example (i.e. beat em up, vertical shmups, horizontal shmups, fighting games, etc.), all with personalized icons and screenshots. Looks pretty awesome. I can't see myself ever going back to standalone emulators unless the libretro port is just awful (PPSSPP was a recent example, the libretro port was very outdated but late last year they finally updated it).