Caja extensions link against the libcaja-extenstions library which is
is under the LGPL license. However, they also get loaded into the main
caja program which is licensed under the GPL. So, extensions should not
be incompatible with the LGPL or GPL.

Some extensions are GPL but use some IPC mechanism like dbus to talk to a
potentially non-GPL application. This is actually not such a bad design in
general if your extension is doing a lot of work, as running as a caja
extension with all its issues (no synchronous i/o, can't control of the
context your code runs in, etc) can be kind of a pain.
