Citra does have controller support. Just no GUI to configure it.
If you want to use your 3DS as a controller I’d recommend writing a generic driver to turn a 3DS into a common USB device like an Xbox 360 controller (Linux: uinput / Windows + Mac: no idea but solutions exist). If you also want video feedback, touchscreen and motion controls I’d suggest adding a second virtual joystick or motion sensing device, a virtual mouse and something like VNC / mplayer to stream video.
All of this can be a third party app.
I think it’s such a rare use case that it doesn’t warrant adding such complex code (which requires a lot of synchronization, dependencies etc.). You’ll also gain the flexibility to use it for other programs if you keep it seperated.
There have been people doing this in the past by the way (I’m assuming it was on the old forums as I can’t find the topic now).