@usaradark : I use that same system and definitely would want this.
Sometimes I feel that it would be cool if Obsidian had exposed variables and methods to be used by non programmers on the fly. Like in this case maybe there would be a variable A (hLinesFromTop) that returns the number of lines down your current line is from the heading it is within. And maybe another variable, B (hLinesTotal) that returned the total number of lines in the heading that the cursor is currently in.
This way, if you wanted these kind of easy features like moving the current line to be the top line within the previous heading, you could pretty easily build a macro that would access the first variable A to swap the line up until it is swapped above the heading line of the heading it was within. Then it could access variable B to swap the line up to be the first line within that previous heading.
Maybe I will create a feature request if it isn’t already possible. Maybe building personal plugins is easier than I am thinking. I will have to look into it.
Regardless, I like your idea for sure.
Thanks.