The current signature of GetPixels is:
public Color GetPixels(int x, int y, int blockWidth, int blockHeight, int miplevel = 0);
if a version was added that didn't return an array but instead took a ref to the destination array as an argument the whole thing could be done without creating garbage for the GC to collect.
public bool GetPixels(int x, int y, int blockWidth, int blockHeight, ref Color dest_array, int miplevel = 0);
This is currently causing hitches due to GC when I blit sprites together in a character paperdoll system and it seems so easy to fix.