Is there a way to prevent primary key, foreign key and unique constraints from creating an index?
Short answer: No.
You might have such indexes and they have low selectivity because a lot of duplicates. Firebird 2 handles those much better than previous versions. If you still think you're better of without them, you could use triggers instead of constraints - please note that such triggers would have to do a full table scan when checking whether a record exists.