I’d like to propose a new concept to TestRail: How-Tos
The basic purpose of this would be to avoid test case step duplication, and repetition. As test cases grow in size and complexity, it would be ideal to have only one place where basic steps are stated, and thus built upon. Should the procedure change for any reason, we can expire it by setting a max milestone to it, and creating another one for the same procedure for the milestones going forward. By doing it this way, these “procedures” will be milestone independent as it would be up to the user to ensure that the full milestone coverage is performed. Maybe even to enforce this, you could use milestone gap detection to help the users ensure that these “procedures” would be fully covered for all available milestones.
As a simple metaphor, we could consider avoiding code duplication by using methods. So we could apply this to test case steps as well.
I believe that this could be a very interesting extension to the step feature that you have in your test case form.