Compiling large files takes too much time.
There is no support for rationals, complex numbers or extended-precision integers (bignums).
The (non-standard) macros let-optionals, let-id-macro, define-id-macro, let-macro and define-entry-point currently don't work in combination with the high-level macro system.
The maximal number of arguments that may be passed to a compiled procedure or macro is 126 (or 1024 on x86 platforms). A macro-definition that has a single rest-parameter can have any number of arguments.
The maximum number of values that can be passed to continuations captured using call-with-current-continuation is 126.
Some numeric procedures are missing since CHICKEN does not support the full numeric tower.
The compiler and programs generated by it need a fairly large amount of memory.
If a known procedure has unused arguments, but is always called without those parameters, then the optimizer ``repairs'' the procedure in certain situations and removes the parameter from the lambda-list.
eval-when doesn't allow toplevel definitions inside it's body in combination with hygienic macros.
define-values can not be used in internal definitions when the hygienic macro system is used.
port-position currently works only for input ports.
Leaf routine optimization can theoretically result in code that thrashes, if tight loops perform excessively many mutations.
Building CHICKEN on RS/6000 systems under AIX is currently not possible, due to strange assembler errors during compilation of the compiler sources.
If eval is invoked with scheme-report-environment or null-environment inside the interpreter, then non-standard syntax is still visible, unless the interpreter has been started with the -strict option.
A source file to be compiled may not begin with the # character if it is not a script-file (beginning with #!).
When the highlevel macro system is used, line number information is not properly maintained.