We do incremental, SCD1, we simply don't insert, we replace existing dimension table with the newly staged table. Partition switches occur very fast, inserts may or may not be swift.
Kimball takes existing dimension and preserves the keys as it determines changes from source system. Kimball outputs show changed, new, deleted, etc (altho we do not delete) and attaches next available key to new records.
It's a very easy way to do things with little downside that I've seen. It's made development very rapid and the table swaps have never failed.